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