line |
true |
false |
branch |
82
|
59 |
0 |
unless defined $self->{'OutStreams'}{'STDOUT'} |
83
|
59 |
0 |
unless defined $self->{'OutStreams'}{'STDERR'} |
87
|
59 |
0 |
unless (defined $self->{'DirStartRE'}) |
96
|
59 |
0 |
unless defined $self->{'Math'} |
98
|
59 |
0 |
unless ($self->{'Math'}{'VarHash'}{'_Initialised'}) |
118
|
61 |
57 |
if (defined $self->{$_}) |
125
|
59 |
0 |
if (defined $opts{'File'}) |
126
|
2 |
57 |
if (defined $opts{'Fd'}) { } |
130
|
0 |
57 |
unless $self->open('binmode', '', %opts) |
148
|
0 |
57 |
unless defined $args{'File'} |
156
|
57 |
0 |
if (not defined $args{'Fd'}) { } |
157
|
0 |
57 |
unless $Fd = $self->openFile($args{'Name'}) |
173
|
0 |
87 |
unless $Fd = 'IO::File'->new($name, 'r') |
178
|
0 |
87 |
if $self->{'Frame'}{'binmode'} |
196
|
199 |
259 |
if (defined $args{'Args'}) |
207
|
1157 |
2049 |
if defined $args{$p} |
209
|
2281 |
925 |
if (defined $self->{'Frame'} and defined $self->{'Frame'}{$p}) |
210
|
1535 |
746 |
unless defined $f{$p} |
241
|
0 |
134 |
unless $self->closeFrame |
253
|
0 |
458 |
unless defined $self->{'Frame'}{'Code'} or defined $self->{'Frame'}{'Fd'} |
256
|
0 |
458 |
if $self->error |
268
|
201 |
257 |
if ($self->{'Frame'}{'LocalVars'}) |
273
|
227 |
226 |
if defined $alist->{$k} |
281
|
32 |
234 |
if $self->{'Frame'}{'Code'} and $old->{'CpMove'} |
297
|
0 |
0 |
unless $self->{'Frame'}{'Fd'} |
308
|
0 |
0 |
unless $self->{'Fd'} |
324
|
5 |
27 |
if (substr($name, 0, 1) eq '$') |
325
|
0 |
5 |
unless $name =~ m[^\$(\w+)(/.+)$]i |
331
|
0 |
5 |
unless $pt = $self->{'Math'}->Parse($var) and @val = $self->{'Math'}->Eval($pt) |
336
|
0 |
12 |
unless $fp |
337
|
5 |
7 |
if -e $fp |
341
|
0 |
0 |
if $noerr |
359
|
4 |
35 |
if index($name, '/') == 0 |
362
|
9 |
26 |
if (substr($name, 0, 1) eq '#') |
373
|
0 |
26 |
if $self->{'TopIsFd'} and @{$self->{'FrameStk'};} == 1 |
379
|
0 |
26 |
unless $last = $self->GetLastFileName |
395
|
26 |
22 |
if exists $self->{'FrameStk'}[$frames]{'Fd'} |
411
|
0 |
838 |
if ($2 eq '0') { } |
|
1 |
837 |
elsif ($2 eq 'e') { } |
|
837 |
0 |
elsif ($2 eq 'v') { } |
416
|
0 |
837 |
unless $arg =~ s/^{(\w+|\w+\[\w+\])}//i |
420
|
0 |
837 |
unless defined $vv |
427
|
0 |
2857 |
if $arg =~ /\\/ |
445
|
10 |
2459 |
if ($c1 eq '"' or $c1 eq q[']) { } |
447
|
0 |
10 |
unless $arg =~ s/^(["'])((\\{2})*|(.*?[^\\](\\{2})*))\1\s*// |
459
|
557 |
38 |
if $doEsc |
477
|
0 |
38 |
unless $arg ne '' |
480
|
0 |
38 |
unless @args = $self->SplitArgs($arg, 0) |
485
|
0 |
38 |
unless $code->{'Name'} =~ /^\w+$/ |
488
|
0 |
38 |
if exists $self->{'subs'}{$code->{'Name'}} |
494
|
9 |
29 |
if @args |
562
|
347 |
219 |
if ($InLine =~ /^($self->{'DirStartRE'})(\w+)\s*(.*)/ and defined $ctlDirectives{$2} || defined $self->{'subs'}{$2}) { } |
564
|
219 |
0 |
unless defined $frame->{'Code'} |
572
|
41 |
306 |
if (exists $loops{$dir}) |
575
|
3 |
38 |
if $arg =~ s/^-i\s*(\d+)\s*// |
579
|
0 |
41 |
unless $arg ne '' |
583
|
14 |
27 |
if ($dir eq 'for') |
586
|
0 |
14 |
unless @e == 3 |
589
|
11 |
3 |
if $e[0] =~ /\S/ |
591
|
0 |
14 |
unless $e[1] =~ /\S/ |
594
|
11 |
3 |
if ($e[2] =~ /\S/) |
596
|
0 |
11 |
unless $line->{'For3'} = $self->{'Math'}->Parse($e[2]) |
604
|
89 |
258 |
if (exists $makeExpr{$dir}) |
606
|
43 |
46 |
if (substr($arg, 0, length $self->{'DirStart'}) eq $self->{'DirStart'}) { } |
610
|
0 |
46 |
unless $arg =~ /\S/ and $line->{'Expr'} = $self->{'Math'}->Parse($arg) |
614
|
100 |
247 |
if (defined $blkPairs{$dir}) { } |
|
100 |
147 |
elsif (defined $blkPairs{$blocks[-1]{'type'}} and $blkPairs{$blocks[-1]{'type'}} eq $dir) { } |
|
0 |
147 |
elsif (defined $endings{$dir}) { } |
624
|
0 |
100 |
if $arg =~ /(\S+)/ and $blk->{'type'} ne $1 |
627
|
41 |
59 |
if (exists $loops{$blk->{'type'}}) |
642
|
55 |
292 |
if $dir eq 'done' and @blocks == 0 |
648
|
0 |
511 |
unless ($InLine = $self->{'Frame'}{'Fd'}->getline) |
671
|
112 |
53 |
if ($code->{'ArgNames'} and @{$code->{'ArgNames'};}) |
678
|
223 |
5 |
if @args |
694
|
282 |
193 |
if ($esc = exists $replay->{'SubCond'} or substr($arg, 0, length $self->{'DirStart'}) eq $self->{'DirStart'} and $arg =~ /^$self->{'DirStartRE'}(\w+)\s*(.*)/) { } |
698
|
244 |
38 |
if $esc |
703
|
66 |
216 |
unless (exists $self->{'subs'}{$sub}) |
705
|
0 |
66 |
unless exists $condDirectives{$sub} |
709
|
141 |
141 |
if ($self->{'Frame'}{'CondReRun'}) { } |
716
|
122 |
19 |
if ($esc) { } |
722
|
33 |
108 |
if ($intDir) { } |
740
|
19 |
122 |
unless $esc |
743
|
0 |
141 |
if $self->{'Frame'}{'intDir'} |
745
|
122 |
19 |
if $esc |
750
|
158 |
35 |
if ($replay and exists $replay->{'Expr'}) { } |
754
|
0 |
35 |
unless $iftree = $self->{'Math'}->Parse($arg) |
760
|
35 |
299 |
if $replay->{'Not'} |
773
|
458 |
0 |
unless $self->{'Error'} |
781
|
0 |
0 |
unless $self->{'Fd'} and $self->{'Fd'}->opened |
796
|
0 |
0 |
if $self->{'OnError'} eq 'die' |
797
|
0 |
0 |
if $self->{'OnError'} eq 'warn' |
799
|
0 |
0 |
if ($einval) |
823
|
1012 |
2 |
if $self->{'out'} eq '' |
836
|
0 |
5 |
unless (defined $strm) |
841
|
4 |
1 |
if (ref $strm eq 'IO::File' or ref $strm eq 'IO::Handle') |
845
|
1 |
0 |
if (ref $strm eq 'CODE') |
863
|
0 |
1014 |
unless defined $self->{'Frame'}{'Code'} or defined $self->{'Frame'}{'Fd'} |
871
|
0 |
3043 |
if $self->{'Error'} |
874
|
59 |
2984 |
unless @{$self->{'FrameStk'};} |
880
|
19 |
2965 |
if (defined($_ = pop @{$$frame{'PushedInput'};})) { } |
|
1713 |
1252 |
elsif (exists $frame->{'Code'}) { } |
886
|
83 |
1630 |
if ($frame->{'CodeLine'} > $frame->{'Code'}{'LastLine'}) |
899
|
78 |
1174 |
unless ($_) |
903
|
0 |
78 |
unless $self->closeFrame |
906
|
78 |
0 |
if $self->{'Frame'} |
912
|
0 |
1174 |
if ($self->{'Raw'}) |
933
|
534 |
2333 |
if (/^$self->{'DirStartRE'}#/) |
934
|
0 |
534 |
if $self->{'trace'} |
938
|
2333 |
0 |
if $self->{'Trim'} |
942
|
616 |
1717 |
unless (/^($self->{'DirStartRE'})(\w+)\s*(.*)/ and defined $ctlDirectives{$2} || defined $self->{'subs'}{$2}) |
944
|
60 |
556 |
unless ($frame->{'Generate'}) |
949
|
0 |
556 |
if $self->{'trace'} > 1 |
960
|
0 |
0 |
if $self->{'trace'} and $frame->{'Generate'} |
966
|
100 |
1617 |
if ($dir eq 'if' or $dir eq 'unless') |
969
|
77 |
23 |
unless $frame->{'CondReRun'} |
976
|
100 |
0 |
if ($frame->{'Generate'}) |
980
|
0 |
100 |
unless defined $gen |
982
|
23 |
77 |
if $frame->{'CondReRun'} |
988
|
29 |
1588 |
if ($dir eq 'elseif' or $dir eq 'elsif') |
990
|
0 |
29 |
unless $frame->{'Type'} eq 'if' or $frame->{'Type'} eq 'unless' |
992
|
0 |
29 |
if $frame->{'Else'} |
999
|
27 |
2 |
if ($frame->{'ParentGenerate'} and not $frame->{'DidGenerate'}) { } |
1002
|
0 |
27 |
unless defined $gen |
1005
|
12 |
15 |
if $frame->{'CondReRun'} |
1013
|
41 |
1547 |
if ($dir eq 'else') |
1016
|
0 |
41 |
unless $frame->{'Type'} eq 'if' or $frame->{'Type'} eq 'unless' |
1018
|
0 |
41 |
if $frame->{'Else'} |
1022
|
26 |
15 |
if ($frame->{'DidGenerate'}) { } |
1030
|
73 |
1474 |
if ($dir eq 'fi') |
1032
|
0 |
73 |
unless $frame->{'Type'} eq 'if' or $frame->{'Type'} eq 'unless' |
1039
|
25 |
1449 |
unless $frame->{'Generate'} |
1041
|
151 |
1298 |
if ($dir eq 'let') |
1043
|
87 |
64 |
if ($replay and exists $replay->{'Expr'}) { } |
1047
|
0 |
64 |
unless $iftree = $self->{'Math'}->Parse($arg) |
1056
|
399 |
899 |
if ($dir eq 'echo') |
1062
|
348 |
551 |
if (exists $loops{$dir}) |
1075
|
90 |
106 |
unless ($doneDone or $frame->{'CondReRun'}) |
1081
|
17 |
331 |
unless (exists $frame->{'Code'}) |
1082
|
0 |
17 |
unless $code = $self->ReadLoop($dir, $_, $arg) |
1089
|
90 |
106 |
unless ($doneDone or $frame->{'CondReRun'}) |
1101
|
15 |
75 |
if exists $replay->{'Init'} |
1106
|
242 |
106 |
unless ($frame->{'CondReRun'}) |
1109
|
0 |
242 |
if $frame->{'LoopMax'} and ++$frame->{'LoopCnt'} > $frame->{'LoopMax'} |
1112
|
86 |
156 |
if exists $replay->{'For3'} and $frame->{'LoopCnt'} != 1 |
1117
|
106 |
242 |
if $frame->{'CondReRun'} |
1118
|
52 |
190 |
unless $bool |
1124
|
122 |
429 |
if ($dir eq 'done') |
1126
|
0 |
122 |
unless exists $frame->{'LoopMax'} |
1134
|
27 |
402 |
if ($dir eq 'break' or $dir eq 'last') |
1136
|
1 |
26 |
if $arg =~ /\s*(\d+)/ |
1143
|
0 |
28 |
if exists $self->{'Frame'}{'ReturnFrom'} |
1147
|
0 |
28 |
unless $self->closeFrame |
1152
|
30 |
372 |
if ($dir eq 'continue' or $dir eq 'next') |
1154
|
10 |
20 |
if $arg =~ /\s*(\d+)/ |
1160
|
0 |
40 |
if exists $self->{'Frame'}{'ReturnFrom'} |
1162
|
30 |
10 |
if ($ls = exists $self->{'Frame'}{'LoopStart'} and --$loops <= 0) |
1168
|
0 |
10 |
unless $self->closeFrame |
1176
|
16 |
356 |
if ($dir eq 'local') |
1188
|
42 |
314 |
if ($dir eq 'include') |
1192
|
8 |
34 |
if ($arg =~ s/^-s\s*(\w+)\s*//) |
1195
|
0 |
8 |
if exists $self->{'Streams'}{$stream} |
1198
|
0 |
42 |
unless @args = $self->SplitArgs($arg, 1) |
1199
|
0 |
42 |
unless @args |
1203
|
2 |
40 |
if (not defined $stream and $fn =~ /^-p(\d*)$/) |
1204
|
1 |
1 |
$1 eq '' ? : |
1207
|
0 |
2 |
if $level > @{$self->{'FrameStk'};} |
1208
|
0 |
2 |
unless @args |
1213
|
12 |
30 |
if (substr($fn, 0, 1) eq '|') { } |
1215
|
0 |
12 |
unless $self->{'PipeOK'} |
1218
|
6 |
6 |
$fn eq '|' ? : |
1221
|
0 |
12 |
unless $fd |
1230
|
0 |
30 |
unless defined($fn = $self->ResolveFilename($fn)) |
1231
|
0 |
30 |
unless $fd = $self->openFile($fn) |
1236
|
8 |
34 |
if (defined $stream) { } |
1240
|
32 |
2 |
unless $level |
1241
|
2 |
32 |
if ($level) |
1252
|
0 |
314 |
if ($dir eq 'exit') |
1254
|
0 |
0 |
if ($arg ne '') |
1256
|
0 |
0 |
unless ($code =~ /^\d+$/) |
1266
|
3 |
311 |
if ($dir eq 'print') |
1268
|
0 |
3 |
if $arg =~ s/^-e\b\s*// |
1269
|
3 |
0 |
if $arg =~ s/^-o\s*(\w+)\b\s*// |
1271
|
0 |
3 |
unless defined($arg = $self->ProcEscapes($arg)) |
1277
|
3 |
308 |
if ($dir eq 'out') |
1278
|
1 |
2 |
if ($arg eq '') { } |
|
2 |
0 |
elsif ($arg =~ s/^(\w+)\s*$//) { } |
1281
|
2 |
0 |
if (defined $self->{'OutStreams'}{$1}) { } |
1294
|
130 |
178 |
if ($dir eq 'return') |
1297
|
127 |
3 |
if $arg =~ /\S/ |
1300
|
0 |
130 |
unless $self->close |
1306
|
44 |
134 |
if ($dir eq 'eval') |
1307
|
0 |
44 |
unless $_ = $self->ProcEscapes($arg) |
1308
|
0 |
44 |
if /^$self->{'DirStartRE'}#/ |
1314
|
8 |
126 |
if ($dir eq 'close') |
1315
|
0 |
8 |
unless $arg =~ s/^-s\s*(\w+)\s*// |
1321
|
0 |
8 |
unless exists $self->{'Streams'}{$stream} |
1329
|
28 |
98 |
if ($dir eq 'read') |
1332
|
23 |
5 |
if $arg =~ s/^-s\s*(\w+)\s+// |
1335
|
0 |
28 |
unless $vname |
1338
|
23 |
5 |
if (defined $stream) { } |
1340
|
0 |
23 |
unless $fd = $self->{'Streams'}{$stream} |
1352
|
21 |
7 |
if ($_ = $fd->getline) { } |
1355
|
21 |
0 |
if $self->{'Trim'} |
1367
|
1 |
97 |
if $dir eq 'noop' |
1370
|
38 |
59 |
if ($dir eq 'sub') |
1372
|
0 |
38 |
unless $self->readSub($dir, $_, $arg) |
1376
|
2 |
57 |
if ($dir eq 'test') |
1380
|
0 |
2 |
unless @args and exists $an{$args[0]} and @args == $an{$args[0]} |
1382
|
2 |
0 |
if ($args[0] eq '-f') |
1385
|
2 |
0 |
if ($fn = $self->ResolveFilename($args[1], 1) and @stat = stat $fn) |
1394
|
0 |
57 |
if ($dir eq 'error') |
1395
|
0 |
0 |
if $arg eq '' |
1399
|
0 |
57 |
if ($dir eq 'set') |
1401
|
0 |
0 |
unless $arg =~ /^(\w+)=(\d+)/ and $options{$1} |
1406
|
0 |
57 |
if $dir eq 'function' or $dir eq 'do' or $dir eq 'case' or $dir eq 'switch' or $dir eq 'endswitch' |
1411
|
57 |
0 |
if (exists $self->{'subs'}{$dir}) |
1429
|
0 |
0 |
unless $self->{'Fd'} |
1431
|
0 |
0 |
unless wantarray |