in reply to Re: system() and qx comparison
in thread system() and qx comparison
but, if replace single quotes by doubles quotes with qx, $LANG will be resolved as a Perl variable, not as a shell environment variable
This little code will show it clearly:cat essaiQX.pl #!/usr/bin/perl my $LANG = "script internal"; system('echo $LANG'); system('echo','$LANG'); my @out = qx "echo $LANG"; chomp(@out); print "out=@out\n"; my @out = qx' echo $LANG '; chomp(@out); print "out=@out\n";
it's output is :
./essaiQX.pl fr_FR.UTF-8 $LANG out=script internal out=fr_FR.UTF-8
In fact i'd like to pass parameters to the command (the "echo" program in this little example), with possibly $, *, and such characters which the shell interpretes. while avoiding a large collection of antislashes. May be, it's not possible with qx and I must use system(). That's what I'd like to know</p
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: system() and qx comparison
by onelesd (Pilgrim) on Sep 27, 2011 at 22:32 UTC |