in reply to Re: call a program inside another program
in thread call a program inside another program

You can also call system with a list on Win32:

C:\>perl -e "system(qw/skript.pl 1 2 3/)" 1 2 3

Replies are listed 'Best First'.
Re^3: call a program inside another program
by Corion (Patriarch) on Sep 06, 2007 at 11:31 UTC

    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.

Re^3: call a program inside another program
by Anonymous Monk on Sep 06, 2007 at 12:20 UTC
    In Linux OS if I use code system('program2.pl', 'username', 'userid'); How can I catch those values in program2.pl?

      See perlvar. You find the arguments in the @ARGV variable.