fce system: stdin

Marian Cavojsky cavojsky na soria-grey.sk
Úterý Říjen 1 17:43:08 MEST 2002


On Tue, Oct 01, 2002 at 04:41:14PM +0200, Jiri Polcar wrote:
>  
> On Tue, Oct 01, 2002 at 03:58:24PM +0200, Marian Cavojsky wrote:
> > On Tue, Oct 01, 2002 at 03:35:45PM +0200, Jiri Polcar wrote:
> > >     Zdravim,
> > > 
> > > potrebuju pustit program pomoci fce system tak, abych mu predal obsah
> > > souboru na standartni vstup. Jak to mam udelat?
> > > 
> > >     system "program", @arv, "<$file";
> > > 
> > > samozrejme nefunguje (retezec "<$file" je interpretovan jako parametr),
> > > jen chci naznacit, co presne porebuji.
> > 
> > perl -e '$file = "subor.txt"; system "sort <$file";'
> > 
> 
> To ovsem nefunguje, bdrzi-li fce system vic argumentu nebo pole s vic
> nez jednim prvkem. Pak totiz bere prvni prvek jako nazev programu a
> ostatni jako jeho argumenty.
> 
> A ja potrebuji predat seznam argumentu @arv. Pokud bych napsal napr.:
> 
>     system "cat $file | program", @arv;
> 
> Perl by se pokusil pustit program s nazvem "cat $file | program", ktery
> by patrne nenasel...
> 

system "program ".join(" ", na arv)." <$file";

co nebude fungovat, ked argumenty budu mat medzery

system "program \"".join("\" \"", na arv)."\" <$file";

neviem ako sa zachova ked argument bude obsahovat ".

-- 
Marian Cavojsky <cavojsky @ soria-grey.sk>
Spravca siete, Soria & Grey s.r.o, reklamna agentura



Další informace o konferenci Perl