| line |
l |
!l&&r |
!l&&!r |
condition |
|
15
|
0 |
31 |
0 |
ref $class || $class |
|
16
|
29 |
2 |
0 |
$_NEW{$CLASS} //= do {
my(%seen, @new, @build);
my(@possible) = $CLASS;
while (@possible) {
my $c = shift @possible;
no strict 'refs';
push @new, $c . '::_NEW' if exists &{$c . '::_NEW';};
push @build, $c . '::BUILD' if exists &{$c . '::BUILD';};
++$seen{$c};
if (exists &{$c . '::DOES';}) {
push @possible, grep({not $seen{$_}++;} $c->DOES("*"));
};
push @possible, grep({not $seen{$_}++;} @{$c . '::ISA';});
};
[[reverse(@new)], [reverse(@build)]]
} |
|
58
|
0 |
0 |
0 |
delete $_[0]{'_ret'} or Carp::confess('Sys::Cmd::Process _ret: ' . $@) |
|
61
|
0 |
0 |
0 |
delete $_[0]{'cmd'} or Carp::confess('Sys::Cmd::Process cmd: ' . $@) |
|
75
|
0 |
0 |
0 |
delete $_[0]{'_ret'} or Carp::confess('invalid (Sys::Cmd::Process::_ret) value: ' . $@) |
|
79
|
116 |
0 |
1 |
$_[0]{'_ret'} //= eval {
do {
$Sys::Cmd::Process::_FIELDS->{'_ret'}{'isa'}->($Sys::Cmd::Process::_FIELDS->{'_ret'}{'default'}->($_[0]))
}
} |
|
83
|
0 |
1 |
0 |
delete $_[0]{'_ret'} or Carp::confess('invalid (Sys::Cmd::Process::_ret) default: ' . $@) |
|
93
|
0 |
0 |
24 |
$_[0]{'core'} //= $Sys::Cmd::Process::_FIELDS->{'core'}{'default'}->($_[0]) |
|
98
|
86 |
2 |
29 |
$_[0]{'exit'} //= $Sys::Cmd::Process::_FIELDS->{'exit'}{'default'}->($_[0]) |
|
110
|
55 |
4 |
27 |
$_[0]{'signal'} //= $Sys::Cmd::Process::_FIELDS->{'signal'}{'default'}->($_[0]) |
|
115
|
31 |
0 |
0 |
$_[0]{'status'} //= $Sys::Cmd::Process::_FIELDS->{'status'}{'default'} |
|
293
|
2 |
4 |
25 |
$self->exit || $self->signal |