in reply to Passing vars to command
As you can see the first form calls the external program with three separate parameters 'foo', 'bar', 'baz'. The second form calls the program with one parameter "foo bar baz" These are very different and the external program may act completely different depending on what it expects.if (@ARGV) { print "called with "; foreach (@ARGV) { print "'$_' "; } print "\n"; } else { system ('perl', $0, "foo", "bar", "baz"); system ('perl', $0, "foo bar baz"); #single parameter system ("perl $0 foo bar baz"); system ("perl $0 'foo bar baz'"); } __OUTPUT___ $ perl temp.pl called with 'foo' 'bar' 'baz' called with 'foo bar baz' called with 'foo' 'bar' 'baz' called with 'foo bar baz'
--
flounder
|
|---|