my @args ; if ( @_ == 1 && ! ref $_[0] ) { if ( Win32_MODE ) { @args = ( [ qw( command /c ), win32_parse_cmd_line $_[0] ] ) ; } else { @args = ( [ qw( sh -c ), @_ ] ) ; } } elsif ( @_ > 1 && ! grep ref $_, @_ ) { @args = ( [ @_ ] ) ; } else { @args = @_ ; } #### use IPC::Run qw(run harness); # This will work my $h = harness "perl", "-v"; run $h; print "\n\n-------------------\n"; print "Calling harness with one arg..."; print "\n-------------------\n\n"; #This will not work if you don't have command.com my $h2 = harness "perl -v"; run $h2;