| line | true | false | branch | 
 
| 12 | 12 | 0 | if ('File::Spec'->can('rel2abs')) | 
 
| 14 | 135 | 0 | unless ref $inc | 
 
| 17 | 12 | 0 | if exists $SIG{'WINCH'} | 
 
| 186 | 0 | 1 | if ($CPAN::Signal) | 
 
| 191 | 0 | 1 | if ($CPAN::autoload_recursion > 1) | 
 
| 199 | 1 | 0 | unless $CPAN::Config_loaded++ | 
 
| 200 | 0 | 1 | if (exists $export{$l}) { } | 
 
| 219 | 0 | 0 | if (s/^\s*>//) { } | 
 
|  | 0 | 0 | elsif (s/^\s*\|\s*//) { } | 
 
| 220 | 0 | 0 | s/^>// ? : | 
 
| 222 | 0 | 0 | unless length $_ | 
 
| 223 | 0 | 0 | unless defined $_ | 
 
| 224 | 0 | 0 | unless open STDOUT, ">$m$_" | 
 
| 231 | 0 | 0 | unless open STDOUT, $pipe | 
 
| 240 | 0 | 0 | unless $redir | 
 
| 245 | 0 | 0 | if "$@" | 
 
| 259 | 0 | 0 | unless defined $CPAN::Suppress_readline | 
 
| 260 | 0 | 0 | unless $CPAN::Config_loaded++ | 
 
| 268 | 0 | 0 | unless ($CPAN::Suppress_readline) | 
 
| 270 | 0 | 0 | if (not $CPAN::term or $CPAN::term->ReadLine eq 'Term::ReadLine::Stub') | 
 
| 276 | 0 | 0 | if ($CPAN::term->ReadLine eq 'Term::ReadLine::Gnu') { } | 
 
| 285 | 0 | 0 | if (my $histfile = $CPAN::Config->{'histfile'}) | 
 
| 286 | 0 | 0 | unless ($CPAN::term->can('AddHistory')) | 
 
| 294 | 0 | 0 | if defined $_ | 
 
| 305 | 0 | 0 | if defined $_ | 
 
|  | 0 | 0 | 'File::Spec'->can('tmpdir') ? : | 
 
| 310 | 0 | 0 | if $CPAN::term | 
 
| 311 | 0 | 0 | unless ($CPAN::Config->{'inhibit_startup_message'}) | 
 
| 312 | 0 | 0 | $CPAN::term->ReadLine ne 'Term::ReadLine::Stub' ? : | 
 
|  | 0 | 0 | $CPAN::Suppress_readline ? : | 
 
| 327 | 0 | 0 | if ($CPAN::Suppress_readline) { } | 
 
| 328 | 0 | 0 | if ($CPAN::Echo_readline) | 
 
| 332 | 0 | 0 | unless defined($_ = ) | 
 
| 333 | 0 | 0 | if ($CPAN::Echo_readline) | 
 
| 340 | 0 | 0 | unless defined($_ = $CPAN::term->readline($prompt, $commandline)) | 
 
| 342 | 0 | 0 | if $continuation | 
 
| 344 | 0 | 0 | if /^$/ | 
 
| 346 | 0 | 0 | if (/^(?:q(?:uit)?|bye|exit)\s*$/i) { } | 
 
|  | 0 | 0 | elsif (s/\\$//s) { } | 
 
|  | 0 | 0 | elsif (/^\!/) { } | 
 
|  | 0 | 0 | elsif (/./) { } | 
 
| 359 | 0 | 0 | unless $CPAN::Eval::import_done++ | 
 
| 360 | 0 | 0 | if $CPAN::DEBUG | 
 
| 362 | 0 | 0 | if $@ | 
 
| 368 | 0 | 0 | if $@ | 
 
| 369 | 0 | 0 | unless @line | 
 
| 371 | 0 | 0 | if $CPAN::DEBUG | 
 
| 381 | 0 | 0 | if ($command_error) | 
 
| 383 | 0 | 0 | if (ref $err and $err->isa('CPAN::Exception::blocked_urllist')) { } | 
 
| 388 | 0 | 0 | if ($err =~ /\S/) | 
 
| 396 | 0 | 0 | if ($command =~ /^(
                             # classic commands
                             make
                             |test
                             |install
                             |clean
                             # pragmas for classic commands
                             |ff?orce
                             |notest
                             # compounds
                             |report
                             |smoke
                             |upgrade
                            )$/x) | 
 
| 415 | 0 | 0 | if (my $err = $@) | 
 
| 416 | 0 | 0 | unless (ref $err and $reported_error eq ref $err) | 
 
| 433 | 0 | 0 | if ($try_detect_readline) | 
 
| 434 | 0 | 0 | if ($CPAN::META->has_inst('Term::ReadLine::Gnu') or $CPAN::META->has_inst('Term::ReadLine::Perl')) | 
 
| 447 | 0 | 0 | if ($CPAN::term and $CPAN::term->can('ornaments')) | 
 
| 449 | 0 | 0 | if (defined $_) { } | 
 
| 450 | 0 | 0 | if (not defined $last_term_ornaments or $_ != $last_term_ornaments) | 
 
| 465 | 0 | 0 | unless $CPAN::META->{'readwrite'}{"CPAN::$class"}{$dm}{'incommandcolor'} | 
 
| 470 | 0 | 0 | if ($CPAN::GOTOSHELL) | 
 
| 472 | 0 | 0 | if $CPAN::term and $CPAN::term->can('GetHistory') | 
 
| 483 | 0 | 0 | unless (@$cwd) | 
 
| 491 | 0 | 0 | if (CPAN::chdir($cwd->[0])) { } | 
 
| 494 | 0 | 0 | if (@$cwd > 1) { } | 
 
| 508 | 0 | 0 | if ($Config::Config{'d_flock'} or $Config::Config{'d_fcntl_can_lock'}) { } | 
 
|  | 0 | 0 | elsif (not $CPAN::Have_warned->{'d_flock'}++) { } | 
 
| 521 | 0 | 3 | if ($yaml_module ne 'YAML' and not $CPAN::META->has_inst($yaml_module)) | 
 
| 529 | 0 | 0 | if ($yaml_module eq 'YAML' and $CPAN::META->has_inst($yaml_module) and $YAML::VERSION < 0.6 and not $CPAN::Have_warned->{'YAML'}++) | 
 
| 548 | 0 | 0 | unless -s $local_file | 
 
| 550 | 0 | 0 | if ($CPAN::META->has_inst($yaml_module)) { } | 
 
| 559 | 0 | 0 | if ($code = UNIVERSAL::can($yaml_module, 'LoadFile')) { } | 
 
|  | 0 | 0 | elsif ($code = UNIVERSAL::can($yaml_module, 'Load')) { } | 
 
| 561 | 0 | 0 | if ($@) | 
 
| 567 | 0 | 0 | unless open FH, $local_file | 
 
| 571 | 0 | 0 | if ($@) | 
 
| 589 | 0 | 0 | if ($CPAN::META->has_inst($yaml_module)) { } | 
 
| 591 | 0 | 0 | if (UNIVERSAL::isa($local_file, 'FileHandle')) { } | 
 
|  | 0 | 0 | elsif ($code = UNIVERSAL::can($yaml_module, 'DumpFile')) { } | 
 
|  | 0 | 0 | elsif ($code = UNIVERSAL::can($yaml_module, 'Dump')) { } | 
 
| 598 | 0 | 0 | unless open FH, ">$local_file" | 
 
| 601 | 0 | 0 | if ($@) | 
 
| 605 | 0 | 0 | if (UNIVERSAL::isa($local_file, 'FileHandle')) { } | 
 
| 614 | 0 | 0 | unless ($CPAN::META->has_inst('CPAN::SQLite')) | 
 
| 616 | 0 | 0 | unless $CPAN::Have_warned->{'CPAN::SQLite'}++ | 
 
| 626 | 126 | 1 | if ($negative_cache->{'time'} and time < $negative_cache->{'time'} + 60) { } | 
 
| 633 | 0 | 1 | if $ret | 
 
| 648 | 0 | 0 | if (defined $dll) | 
 
| 649 | 0 | 0 | -f $dll ? : | 
 
| 651 | 0 | 0 | -f &find_perl() ? : | 
 
| 658 | 0 | 0 | if ($other_fingerprint) { } | 
 
| 659 | 0 | 0 | if (exists $other_fingerprint->{'stat($^X)'}) | 
 
| 664 | 0 | 0 | unless $other_fingerprint->{$key} eq $this_fingerprint->{$key} | 
 
| 673 | 0 | 0 | if (not $INC{'CPAN/MyConfig.pm'}) | 
 
| 679 | 0 | 0 | if ($new =~ /^y/i) { } | 
 
| 691 | 0 | 0 | unless $CPAN::Config_loaded++ | 
 
| 692 | 0 | 0 | if $CPAN::DEBUG | 
 
| 706 | 0 | 0 | if (-f $lockfile and -M _ > 0) | 
 
| 707 | 0 | 0 | unless my $fh = 'FileHandle'->new($lockfile) | 
 
| 712 | 0 | 0 | if (defined $otherpid and length $otherpid) | 
 
| 715 | 0 | 0 | if (defined $otherhost and length $otherhost) | 
 
| 720 | 0 | 0 | if (defined $otherhost and defined $thishost and $otherhost ne '' and $thishost ne '' and $otherhost ne $thishost) { } | 
 
|  | 0 | 0 | elsif ($CPAN::RUN_DEGRADED) { } | 
 
|  | 0 | 0 | elsif (defined $otherpid and $otherpid) { } | 
 
|  | 0 | 0 | elsif ($^O eq 'MSWin32') { } | 
 
| 730 | 0 | 0 | if $$ == $otherpid | 
 
| 735 | 0 | 0 | if (kill 0, $otherpid or $!{'EPERM'}) { } | 
 
|  | 0 | 0 | elsif (-w $lockfile) { } | 
 
| 743 | 0 | 0 | unless $ans =~ /^y/i | 
 
| 764 | 0 | 0 | if ($ask_if_degraded_wanted) | 
 
| 769 | 0 | 0 | if ($ans =~ /^y/i) { } | 
 
| 785 | 0 | 0 | if (defined $otherpid) | 
 
| 797 | 0 | 0 | if ($@) | 
 
| 802 | 0 | 0 | if (-l $dotcpan) | 
 
| 804 | 0 | 0 | unless defined $symlinkcpan | 
 
| 806 | 0 | 0 | if ($@) { } | 
 
| 814 | 0 | 0 | unless (-d $dotcpan) | 
 
| 819 | 0 | 0 | if $seconderror | 
 
| 837 | 0 | 0 | unless ($CPAN::RUN_DEGRADED or $self->{'LOCKFH'}) | 
 
| 839 | 0 | 0 | unless ($fh = 'FileHandle'->new("+>>$lockfile")) | 
 
| 859 | 0 | 0 | if ($sleep > 10) | 
 
| 882 | 0 | 0 | if $CPAN::Signal | 
 
| 883 | 0 | 0 | if $CPAN::Signal > 1 | 
 
| 884 | 0 | 0 | if $CPAN::Signal | 
 
| 911 | 0 | 0 | if $CPAN::DEBUG | 
 
| 952 | 12 | 0 | if ('File::Spec'->file_name_is_absolute($^X)) { } | 
 
| 963 | 0 | 0 | if (defined $path and length $path and -d $path) | 
 
| 967 | 0 | 0 | if ($^O eq 'VMS') { } | 
 
|  | 0 | 0 | elsif (defined $exe and length $exe) { } | 
 
| 969 | 0 | 0 | unless $perl =~ /$exe(;\d+)?$/i | 
 
| 972 | 0 | 0 | unless $perl =~ /$exe$/i | 
 
| 979 | 0 | 0 | if ('MM'->maybe_command($perl) and _perl_is_same($perl)) | 
 
| 991 | 0 | 31 | unless $CPAN::Config_loaded++ | 
 
| 995 | 10 | 21 | if $class eq 'CPAN::Module' | 
 
| 997 | 0 | 31 | if (_sqlite_running()) { } | 
 
| 1018 | 112 | 4 | if $CPAN::HAS_USABLE->{$mod} | 
 
| 1020 | 0 | 4 | unless $has_inst | 
 
| 1030 | 0 | 1 | unless ('CPAN::Version'->vge('CPAN::Meta'->VERSION, 2.11035)) | 
 
| 1042 | 0 | 0 | unless ('CPAN::Version'->vge('CPAN::Meta::Requirements'->VERSION, 2.12092)) | 
 
| 1058 | 0 | 0 | unless ('CPAN::Version'->vge('URI::URL'->VERSION, 0.08)) | 
 
| 1073 | 0 | 0 | unless ('CPAN::Version'->vge('HTTP::Tiny'->VERSION, 0.005)) | 
 
| 1083 | 0 | 0 | unless ('CPAN::Version'->vge('File::HomeDir'->VERSION, 0.52)) | 
 
| 1094 | 0 | 1 | unless ('CPAN::Version'->vge('Archive::Tar'->VERSION, $demand)) | 
 
| 1111 | 0 | 0 | unless ('CPAN::Version'->vge('File::Temp'->VERSION, 0.16)) | 
 
| 1120 | 2 | 2 | if ($usable->{$mod}) | 
 
| 1124 | 0 | 2 | unless defined $ret | 
 
| 1125 | 0 | 2 | if ($@) | 
 
| 1136 | 0 | 0 | if @_ | 
 
| 1143 | 0 | 8 | unless ($self->has_inst($module)) | 
 
| 1151 | 0 | 48 | unless defined $mod | 
 
| 1153 | 41 | 7 | unless $CPAN::META->{'dontload_hash'} | 
 
| 1154 | 48 | 0 | unless $CPAN::Config->{'dontload_hash'} | 
 
| 1155 | 48 | 0 | unless $CPAN::Config->{'dontload_list'} | 
 
| 1156 | 9 | 39 | if (defined $message and $message eq 'no' or $dont{$mod}) | 
 
| 1167 | 26 | 13 | if ($INC{$file}) { } | 
 
|  | 7 | 6 | elsif (eval {
	do {
	require $file
}
}) { } | 
 
|  | 0 | 6 | elsif ($mod eq 'Net::FTP') { } | 
 
|  | 0 | 6 | elsif ($mod eq 'Digest::SHA') { } | 
 
|  | 0 | 6 | elsif ($mod eq 'Module::Signature') { } | 
 
| 1185 | 7 | 0 | $v ? : | 
 
| 1187 | 0 | 7 | if ($mod eq 'CPAN::WAIT') | 
 
| 1197 | 0 | 0 | unless $CPAN::Have_warned->{'Net::FTP'}++ | 
 
| 1200 | 0 | 0 | if ($CPAN::Have_warned->{'Digest::SHA'}++) { } | 
 
| 1214 | 0 | 0 | if (not $check_sigs) { } | 
 
|  | 0 | 0 | elsif (not $CPAN::Have_warned->{'Module::Signature'}++) { } | 
 
| 1219 | 0 | 0 | if (eval {
	do {
	require Crypt::OpenPGP;
1
}
} or defined $CPAN::Config->{'gpg'} and $CPAN::Config->{'gpg'} =~ /\S/) | 
 
| 1248 | 4 | 39 | if exists $CPAN::META->{'readwrite'}{$class}{$id} | 
 
| 1272 | 12 | 12 | if $subroutine eq '(eval)' | 
 
| 1275 | 0 | 12 | if $ineval and not $CPAN::End | 
 
| 1276 | 12 | 0 | unless defined $CPAN::META->{'LOCK'} | 
 
| 1277 | 0 | 0 | unless -f $CPAN::META->{'LOCK'} | 
 
| 1284 | 0 | 0 | if ($CPAN::CONFIG_DIRTY) | 
 
| 1297 | 0 | 0 | if defined $term->Attribs->{'MaxHistorySize'} | 
 
| 1299 | 0 | 0 | unless open $fh, "<$histfile" | 
 
| 1312 | 0 | 0 | unless ($histfile = $CPAN::Config->{'histfile'}) | 
 
| 1317 | 0 | 0 | if ($CPAN::term) { } | 
 
| 1318 | 0 | 0 | unless ($CPAN::term->can('GetHistory')) | 
 
| 1326 | 0 | 0 | if @h > $histsize | 
 
| 1328 | 0 | 0 | unless open $fh, ">$histfile" | 
 
| 1337 | 0 | 0 | unless ($what) | 
 
| 1365 | 0 | 0 | if ($foul) { } | 
 
|  | 0 | 0 | elsif (-e $_) { } | 
 
| 1367 | 0 | 0 | if ($foul) { } | 
 
| 1371 | 0 | 0 | if ($d->{'build_dir'} and $d->{'build_dir'} eq $dbd) | 
 
| 1392 | 0 | 0 | unless ($for) | 
 
| 1397 | 0 | 0 | unless %{$self->{'is_tested'};} | 
 
| 1399 | 0 | 0 | unless defined $env | 
 
| 1401 | 0 | 0 | if defined $env and length $env | 
 
| 1406 | 0 | 0 | unless @dirs | 
 
| 1408 | 0 | 0 | if (@dirs < 12) { } | 
 
|  | 0 | 0 | elsif (@dirs < 24) { } |