in reply to Re^2: call a program inside another program
in thread call a program inside another program
But system(LIST) is implemented as a barely disguised system(STRING). The below example tries to pass a string containing double quotes ('4 " and " 5') to a child Perl interpreter which prints out its @ARGV:
Q:\>perl -e "$q=chr(34);system($^X, '-le', 'print for @ARGV', 1, 2, 3, +qq(4 $q and $q 5))" 1 2 3 4 and 5
There would be ways to make system(LIST) saner but as the underlying OS call basically is system(STRING) and there is no central library routine for or consensus on deparsing the command line, and even the various MSVCRTs differ in how they deparse the command line, it's kinda hard.
|
|---|