thanks for your answer;
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