Condition Coverage

blib/lib/Getopt/Modular.pm
Criterion Covered Total %
condition 44 65 67.6


and 3 conditions

line !l l&&!r l&&r condition
84 126 0 0 ref $self && $self->isa('Getopt::Modular')
189 20 3 1 exists $$self{'all_opts'}{$_} and $$self{'all_opts'}{$_} ne $param
276 2 0 1 @_ and ref $_[0] eq 'HASH'
309 35 2 25 not exists $$self{'options'}{$opt} and exists $$self{'accept_opts'}{$opt}
37 10 15 not exists $$self{'options'}{$opt} and exists $$self{'accept_opts'}{$opt} and exists $$self{'accept_opts'}{$opt}{'default'}
314 8 0 7 ref $default[0] and ref $default[0] eq 'CODE'
629 1 0 1 @_ && !ref($_[0])

or 2 conditions

line l !l condition
31 9 0 shift() || die('No namespace given')
41 1 0 caller || 'main'
207 36 3 $$opts{'spec'} ||= ''
237 15 0 $$accept{$_}{'spec'} || ''
501 1 2 $self->_getType($opt) || 'SCALAR'
3 0 reftype($_[0]) || 'SCALAR'
1 2 $self->_getType($opt) || 'SCALAR'
600 1 2 shift() || {}
611 4 5 $$cbs{'current_value'} || sub { 'Current value: [' . (shift()) . ']'; }
617 2 1 $$cbs{'valid_values'} || sub { 'Valid values: [' . join(',', @_) . ']'; }
630 0 2 shift() || {}
665 0 12 $$cbs{'current_value'} || sub { 'Current value: [' . (shift()) . ']'; }
666 0 4 $$cbs{'valid_values'} || sub { 'Valid values: [' . join(',', @_) . ']'; }

or 3 conditions

line l !l&&r !l&&!r condition
60 0 9 0 $global ||= $self
290 65 0 0 shift() || 'Getopt::Modular::Exception'->throw('message', 'No option given?', 'type', 'dev-error')
411 0 8 59 $type eq '' or $type eq '!'
569 0 14 8 $type eq '' or $type eq '!'
571 7 7 0 $self->_opt($param)->{'help_bool'} || $$self{'bool_strings'}
643 2 0 0 eval { do { require Text::WrapI18N; sub { local $Text::WrapI18N::columns = shift(); local $Text::WrapI18N::unexpand; Text::WrapI18N::wrap('', '', @_); } } } || do { require Text::Wrap; sub { local $Text::Wrap::columns = shift(); local $Text::Wrap::unexpand; Text::Wrap::wrap('', '', @_); } }