<?xml version="1.0" encoding="windows-1252"?>
<node id="887244" title="exec always invokes the shell? win32" created="2011-02-09 12:42:18" updated="2011-02-09 12:42:18">
<type id="115">
perlquestion</type>
<author id="961">
Anonymous Monk</author>
<data>
<field name="doctext">
so exec always invokes the shell? 
&lt;c&gt;
#!/usr/bin/perl --

use strict;
use warnings;

my $perl = 'perl'; # $^X;

my @args ;
if( @ARGV ){
# no output from exec/systemx
    @args = ( qw! -l -e !, q!print for @ARGV!, "1 2" );
} else {
# output from exec/systemx, but on 2 lines, wrong output
    @args = ( qw! -l -e !, q!"print for @ARGV"!, '--',"1 2" );
}

warn "$perl @args \n";

warn 'system ';
system $perl, @args;

{
    use IPC::System::Simple qw' systemx ';
    warn 'systemx ';
    systemx $perl, @args;
}

warn 'exec ';
exec $perl, @args; # bug
warn " $!  $^E ";

__END__
&lt;/c&gt;

&lt;C&gt;$ perl junk.pl 1
perl -l -e print for @ARGV 1 2
system  at junk.pl line 24.
1 2
systemx  at junk.pl line 29.

exec  at junk.pl line 33.

$
&lt;/c&gt;





&lt;c&gt;
$ perl junk.pl
perl -l -e "print for @ARGV" -- 1 2
system  at junk.pl line 24.
1 2
systemx  at junk.pl line 29.
1
2
exec  at junk.pl line 33.

$ 1
2
&lt;/c&gt;
Huuuh?</field>
<field name="reputation">
3</field>
</data>
</node>
