line |
true |
false |
branch |
38
|
6478 |
1436 |
unless &Scalar::Util::reftype($_[0]) |
52
|
0 |
4 |
$status == -1 ? : |
54
|
0 |
4 |
if 'threads'->can('exit') |
62
|
0 |
40 |
NON_UNIX ? : |
63
|
0 |
0 |
$1 eq '"' ? : |
65
|
0 |
0 |
$x =~ /[\[\](){}<>'"`~!\@^&+=|;,\s]/ ? : |
79
|
1 |
6 |
if tainted $v |
83
|
1 |
27 |
if tainted($ENV{$v}) |
87
|
2 |
2 |
if (@bad_args or @bad_env) |
103
|
20 |
6 |
$n <= 2 ? : |
111
|
4 |
1167 |
if $] >= 5.008 and ${^TAINT} |
113
|
45 |
1124 |
if @_ == 0 |
116
|
45 |
1079 |
if @_ == 1 and _reftype($_[0]) eq 'CODE' |
119
|
325 |
735 |
@_ ? : |
138
|
14 |
1046 |
if (_reftype($opt_ref) eq 'HASH') |
145
|
0 |
1060 |
defined $opt{'binmode_io'} ? : |
154
|
12 |
1048 |
if ($opt{'stdin'}) |
156
|
0 |
12 |
unless pipe $FOR_STDIN, $TO_STDIN |
161
|
12 |
0 |
if $opt{'autoflush'} |
166
|
6 |
1054 |
if ($opt{'stderr'}) |
168
|
0 |
6 |
unless pipe $FROM_STDERR, $BY_STDERR |
173
|
6 |
0 |
if $opt{'autoflush'} |
178
|
252 |
808 |
if _reftype($_[0]) eq 'CODE' |
179
|
833 |
227 |
if _reftype($_[-1]) eq 'CODE' |
184
|
291 |
769 |
if (@redirs) |
187
|
0 |
291 |
if $Preexec |
191
|
0 |
9 |
if $old_preexec |
200
|
26 |
1034 |
if (grep {not defined $_;} @cmd_list) |
208
|
0 |
1034 |
unless defined $Preexec or @cmd_list |
212
|
0 |
1034 |
NON_UNIX ? : |
|
0 |
1034 |
unless NON_UNIX ? open($ORIGSTDIN, '<&=STDIN') : open($ORIGSTDIN, '<&STDIN') |
223
|
0 |
1034 |
unless ($defined_child) |
230
|
990 |
44 |
if ($gotchild) { } |
234
|
9 |
981 |
if $FOR_STDIN |
235
|
4 |
986 |
if $BY_STDERR |
238
|
0 |
990 |
if (defined $IPC::Exe::_binmode_io and index($IPC::Exe::_binmode_io, ':') == 0) |
243
|
0 |
0 |
if ($opt{'stdin'}) |
245
|
0 |
0 |
unless binmode $TO_STDIN, $layer |
250
|
0 |
0 |
unless binmode $EXE_READ, $layer |
257
|
798 |
192 |
if ($Reader) { } |
|
187 |
5 |
elsif (not $opt{'stdout'}) { } |
263
|
5 |
793 |
$IPC::Exe::_stdin ? : |
|
0 |
798 |
unless $IPC::Exe::_stdin ? open(*STDIN, '<&=', $EXE_READ) : open(*STDIN, '<&', $EXE_READ) |
280
|
44 |
737 |
$failed ? : |
283
|
0 |
781 |
NON_UNIX ? : |
|
0 |
781 |
unless NON_UNIX ? open(*STDIN, '<&=', $ORIGSTDIN) : open(*STDIN, '<&', $ORIGSTDIN) |
288
|
44 |
737 |
if $failed |
301
|
920 |
0 |
unless ($IPC::Exe::_stdin or $opt{'stdout'} or $opt{'stderr'}) |
310
|
187 |
5 |
unless ($Reader or $opt{'stdout'}) |
319
|
232 |
697 |
if ($status[0] == -1 or $status[0] == 65280) |
325
|
100 |
132 |
if not $Reader || $opt{'stdout'} and $reap == $gotchild || $reap == -1 || $reap == 0 and $ret[0] = -1 or $reap == $gotchild |
333
|
0 |
127 |
if ($status[0] == -1 and $Reader and $reap == $gotchild and @ret) |
340
|
3 |
926 |
if _reftype($opt{'pid'}) eq 'SCALAR' |
341
|
0 |
929 |
if _reftype($opt{'stdin'}) eq 'SCALAR' |
342
|
0 |
929 |
if _reftype($opt{'stdout'}) eq 'SCALAR' |
343
|
3 |
926 |
if _reftype($opt{'stderr'}) eq 'SCALAR' |
346
|
926 |
3 |
_reftype($opt{'pid'}) ne 'SCALAR' ? : |
|
8 |
921 |
$opt{'stdin'} && _reftype($opt{'stdin'}) ne 'SCALAR' ? : |
|
5 |
924 |
$opt{'stdout'} && _reftype($opt{'stdout'}) ne 'SCALAR' ? : |
|
4 |
925 |
$opt{'stderr'} && _reftype($opt{'stderr'}) ne 'SCALAR' ? : |
354
|
737 |
192 |
@status_reader ? : |
372
|
3 |
41 |
if $TO_STDIN |
373
|
2 |
42 |
if $FROM_STDERR |
376
|
3 |
41 |
if ($FOR_STDIN) |
378
|
0 |
3 |
unless open *STDIN, '<&=', $FOR_STDIN |
383
|
2 |
42 |
if ($BY_STDERR) |
385
|
0 |
2 |
unless open *STDERR, '>&=', $BY_STDERR |
390
|
0 |
44 |
if (defined $IPC::Exe::_binmode_io and index($IPC::Exe::_binmode_io, ':') == 0) |
395
|
0 |
0 |
unless binmode *STDIN, $layer and binmode *STDOUT, $layer |
403
|
21 |
23 |
if ($Preexec) |
406
|
5 |
16 |
$_args ? : |
411
|
44 |
0 |
if _is_fh(*STDERR) |
412
|
44 |
0 |
if _is_fh(*STDOUT) |
415
|
4 |
40 |
unless (@cmd_list) |
418
|
0 |
4 |
if (NON_UNIX and _is_fh($EXE_GO)) |
431
|
13 |
8 |
if (ref $_) |
435
|
12 |
1 |
if (_reftype($_) =~ /REF|SCALAR/) |
442
|
1 |
12 |
if (_reftype($_) eq 'ARRAY') |
447
|
1 |
0 |
if (not $is_sysopen and defined $args[0]) |
451
|
1 |
0 |
if (defined $op) |
453
|
0 |
0 |
index($op, '<') == -1 ? : |
|
0 |
1 |
if $src eq '' |
462
|
0 |
1 |
$is_sysopen ? : |
|
1 |
0 |
$FH_name ? : |
|
1 |
0 |
$FH_name ? : |
471
|
0 |
1 |
$is_sysopen ? : |
|
0 |
1 |
if $is_sysopen ? @args < 3 || @args > 4 : @args == 0 |
476
|
0 |
0 |
@args == 4 ? : |
|
1 |
0 |
@args >= 2 ? : |
|
0 |
1 |
@args >= 3 ? : |
|
0 |
1 |
$is_sysopen ? : |
|
0 |
1 |
unless $is_sysopen ? @args == 4 ? sysopen($args[0], $args[1], $args[2], $args[3]) : sysopen($args[0], $args[1], $args[2]) : open($args[0], @args >= 2 ? $args[1] : (), @args >= 3 ? $args[2] : (), @args[3 .. $#args]) |
493
|
0 |
20 |
unless defined $_ |
496
|
0 |
20 |
if (/^\s*([012])\s*(:.*)$/) |
500
|
0 |
0 |
if $layer eq ':' |
502
|
0 |
0 |
unless binmode +(*STDIN, *STDOUT, *STDERR)[$1], $layer |
510
|
11 |
9 |
if (/^\s*(\d*)\s*>\s*(?:null|#)\s*$/) |
512
|
1 |
10 |
$1 eq '' ? : |
515
|
0 |
11 |
unless open $FH, '>', $DEVNULL |
523
|
0 |
9 |
if (/^\s*(\d+)\s*><\s*(\d+)\s*$/) |
530
|
0 |
0 |
unless _is_fh($FH1) and _is_fh($FH2) and open $SWAP, '>&', $FH1 and open $FH1, '>&', $FH2 and open $FH2, '>&=', $SWAP |
544
|
8 |
1 |
if (defined $op) |
546
|
0 |
0 |
index($op, '<') == -1 ? : |
|
0 |
8 |
if $src eq '' |
551
|
2 |
6 |
if ($tgt eq '-') |
553
|
0 |
2 |
unless close $FH1 |
562
|
0 |
6 |
unless _is_fh($FH2) and open $FH1, $op, $FH2 |
569
|
0 |
1 |
if ($_ =~ /^\s*(\d*)\s*(\+?[<>].*)/) |
588
|
0 |
40 |
$restore_fh ? : |
|
0 |
0 |
unless $restore_fh ? print($EXE_GO "exe_with_exec\n") : 1 and exec do {
$cmd[0]
} @cmd |
596
|
45 |
0 |
if @_ == 0 |
599
|
0 |
0 |
@_ ? : |
614
|
0 |
0 |
if (_reftype($opt_ref) eq 'HASH') |
622
|
0 |
0 |
if _reftype($_[0]) eq 'CODE' |
625
|
0 |
0 |
unless defined $Background |
629
|
0 |
0 |
if (defined $opt{'wait'} and $opt{'wait'} >= 0) |
636
|
0 |
0 |
unless open $ORIGSTDOUT, '>&STDOUT' |
648
|
0 |
0 |
unless ($defined_child) |
650
|
0 |
0 |
if ($bg_fallback) { } |
656
|
0 |
0 |
if carp('IPC::Exe::bg() cannot fork child', "\n ", $!) |
661
|
0 |
0 |
if ($gotchild) { } |
669
|
0 |
0 |
$status ? : |
674
|
0 |
0 |
NON_UNIX ? : |
680
|
0 |
0 |
if ($defined_child) { } |
682
|
0 |
0 |
unless $defined_grand |
689
|
0 |
0 |
if ($defined_grand) { } |
691
|
0 |
0 |
if $gotgrand |
707
|
0 |
0 |
if ($defined_grand and $gotgrand) |
709
|
0 |
0 |
if ($defined_child) { } |
723
|
0 |
0 |
if (not $gotgrand) { } |
|
0 |
0 |
elsif (not $defined_child) { } |
734
|
0 |
0 |
unless open *STDOUT, '>&=', $ORIGSTDOUT |
738
|
0 |
0 |
if (NON_UNIX) |
740
|
0 |
0 |
if (_is_fh($BG_GO2)) |
746
|
0 |
0 |
if (_is_fh($BG_GO1)) |
755
|
0 |
0 |
$_args ? : |
770
|
0 |
0 |
if $defined_child and $defined_grand |
771
|
0 |
0 |
if $defined_child and not $defined_grand |
772
|
0 |
0 |
if not $defined_child and $defined_grand and not $gotgrand |
786
|
0 |
1034 |
if $^O =~ /^(?:VMS|dos|MacOS|riscos|amigaos|vmesa)$/ |
788
|
0 |
1034 |
if (NON_UNIX) { } |
793
|
0 |
0 |
unless open $ORIGSTDIN, '<&STDIN' |
797
|
0 |
0 |
unless open $ORIGSTDOUT, '>&STDOUT' |
801
|
0 |
0 |
unless open $ORIGSTDERR, '>&STDERR' |
806
|
0 |
0 |
unless pipe $_[0], my $WRITE |
809
|
0 |
0 |
unless pipe my $READY, $_[1] |
813
|
0 |
0 |
if (defined($pid = fork)) |
815
|
0 |
0 |
if ($pid) { } |
827
|
0 |
0 |
if defined $IPC::Exe::_preexec_wait |
833
|
0 |
0 |
unless open *STDIN, '<&=', $ORIGSTDIN |
836
|
0 |
0 |
unless open *STDOUT, '>&=', $ORIGSTDOUT |
839
|
0 |
0 |
unless open *STDERR, '>&=', $ORIGSTDERR |
848
|
0 |
0 |
unless open *STDOUT, '>&=', $WRITE |