| Filename | C:/tmp64ng/perl/vendor/lib/Portable/CPAN.pm |
| Statements | Executed 60 statements in 0s |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 0s | 0s | Portable::CPAN::BEGIN@3 |
| 1 | 1 | 1 | 0s | 0s | Portable::CPAN::BEGIN@4 |
| 1 | 1 | 1 | 0s | 0s | Portable::CPAN::BEGIN@5 |
| 1 | 1 | 1 | 0s | 0s | Portable::CPAN::BEGIN@6 |
| 2 | 2 | 1 | 0s | 0s | Portable::CPAN::CORE:sort (opcode) |
| 1 | 1 | 1 | 0s | 0s | Portable::CPAN::CORE:subst (opcode) |
| 0 | 0 | 0 | 0s | 0s | Portable::CPAN::apply |
| 1 | 1 | 1 | 0s | 0s | Portable::CPAN::new |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Portable::CPAN; | ||||
| 2 | |||||
| 3 | 2 | 0s | 1 | 0s | # spent 0s within Portable::CPAN::BEGIN@3 which was called:
# once (0s+0s) by Portable::new at line 3 # spent 0s making 1 call to Portable::CPAN::BEGIN@3 |
| 4 | 2 | 0s | 2 | 0s | # spent 0s within Portable::CPAN::BEGIN@4 which was called:
# once (0s+0s) by Portable::new at line 4 # spent 0s making 1 call to Portable::CPAN::BEGIN@4
# spent 0s making 1 call to strict::import |
| 5 | 2 | 0s | 2 | 0s | # spent 0s within Portable::CPAN::BEGIN@5 which was called:
# once (0s+0s) by Portable::new at line 5 # spent 0s making 1 call to Portable::CPAN::BEGIN@5
# spent 0s making 1 call to warnings::import |
| 6 | 2 | 0s | 1 | 0s | # spent 0s within Portable::CPAN::BEGIN@6 which was called:
# once (0s+0s) by Portable::new at line 6 # spent 0s making 1 call to Portable::CPAN::BEGIN@6 |
| 7 | |||||
| 8 | 1 | 0s | our $VERSION = '1.22'; | ||
| 9 | |||||
| 10 | # Create the enumerations | ||||
| 11 | 1 | 0s | our %bin = map { $_ => 1 } qw{ | ||
| 12 | bzip2 curl ftp gpg gzip lynx | ||||
| 13 | ncftp ncftpget pager patch | ||||
| 14 | shell tar unzip wget | ||||
| 15 | }; | ||||
| 16 | 1 | 0s | our %post = map { $_ => 1 } qw{ | ||
| 17 | make_arg make_install_arg makepl_arg | ||||
| 18 | mbuild_arg mbuild_install_arg mbuildpl_arg | ||||
| 19 | }; | ||||
| 20 | 1 | 0s | our %file = ( %bin, histfile => 1 ); | ||
| 21 | |||||
| - - | |||||
| 26 | ##################################################################### | ||||
| 27 | # Constructor | ||||
| 28 | |||||
| 29 | # spent 0s within Portable::CPAN::new which was called:
# once (0s+0s) by Portable::new at line 158 of Portable.pm | ||||
| 30 | 1 | 0s | my $class = shift; | ||
| 31 | 1 | 0s | my $parent = shift; | ||
| 32 | 1 | 0s | 2 | 0s | unless ( Portable::_HASH($parent->portable_cpan) ) { # spent 0s making 1 call to Portable::_HASH
# spent 0s making 1 call to Portable::portable_cpan |
| 33 | die('Missing or invalid cpan key in portable.perl'); | ||||
| 34 | } | ||||
| 35 | |||||
| 36 | # Create the object | ||||
| 37 | 1 | 0s | my $self = bless { }, $class; | ||
| 38 | |||||
| 39 | # Map the | ||||
| 40 | 1 | 0s | 1 | 0s | my $cpan = $parent->portable_cpan; # spent 0s making 1 call to Portable::portable_cpan |
| 41 | 1 | 0s | 1 | 0s | my $root = $parent->dist_root; # spent 0s making 1 call to Portable::dist_root |
| 42 | 1 | 0s | 1 | 0s | foreach my $key ( sort keys %$cpan ) { # spent 0s making 1 call to Portable::CPAN::CORE:sort |
| 43 | 10 | 0s | unless ( | ||
| 44 | defined $cpan->{$key} | ||||
| 45 | and | ||||
| 46 | length $cpan->{$key} | ||||
| 47 | and not | ||||
| 48 | $post{$key} | ||||
| 49 | ) { | ||||
| 50 | 2 | 0s | $self->{$key} = $cpan->{$key}; | ||
| 51 | 2 | 0s | next; | ||
| 52 | } | ||||
| 53 | 8 | 0s | if ($file{$key}) { | ||
| 54 | 2 | 0s | 2 | 0s | $self->{$key} = Portable::FileSpec::catfile($root, split /\//, $cpan->{$key}); # spent 0s making 2 calls to Portable::FileSpec::catfile, avg 0s/call |
| 55 | } | ||||
| 56 | else { | ||||
| 57 | 6 | 0s | 6 | 0s | $self->{$key} = Portable::FileSpec::catdir($root, split /\//, $cpan->{$key}); # spent 0s making 6 calls to Portable::FileSpec::catdir, avg 0s/call |
| 58 | } | ||||
| 59 | } | ||||
| 60 | 1 | 0s | 1 | 0s | my $config = $parent->config; # spent 0s making 1 call to Portable::config |
| 61 | 1 | 0s | 1 | 0s | foreach my $key ( sort keys %post ) { # spent 0s making 1 call to Portable::CPAN::CORE:sort |
| 62 | 6 | 0s | next unless defined $self->{$key}; | ||
| 63 | 1 | 0s | 1 | 0s | $self->{$key} =~ s/\$(\w+)/$config->{$1}/g; # spent 0s making 1 call to Portable::CPAN::CORE:subst |
| 64 | } | ||||
| 65 | |||||
| 66 | 1 | 0s | return $self; | ||
| 67 | } | ||||
| 68 | |||||
| 69 | sub apply { | ||||
| 70 | my $self = shift; | ||||
| 71 | my $parent = shift; | ||||
| 72 | |||||
| 73 | # Load the CPAN configuration | ||||
| 74 | require CPAN::Config; | ||||
| 75 | |||||
| 76 | # Overwrite the CPAN config entries | ||||
| 77 | foreach my $key ( sort keys %$self ) { | ||||
| 78 | $CPAN::Config->{$key} = $self->{$key}; | ||||
| 79 | } | ||||
| 80 | |||||
| 81 | # Confirm we got all the paths | ||||
| 82 | my $volume = quotemeta $parent->dist_volume; | ||||
| 83 | foreach my $key ( sort keys %$CPAN::Config ) { | ||||
| 84 | next unless defined $CPAN::Config->{$key}; | ||||
| 85 | next if $CPAN::Config->{$key} =~ /$volume/; | ||||
| 86 | next unless $CPAN::Config->{$key} =~ /\b[a-z]\:/i; | ||||
| 87 | next if -e $CPAN::Config->{$key}; | ||||
| 88 | die "Failed to localize \$CPAN::Config->{$key} ($CPAN::Config->{$key})"; | ||||
| 89 | } | ||||
| 90 | |||||
| 91 | return 1; | ||||
| 92 | } | ||||
| 93 | |||||
| 94 | 1 | 0s | 1; | ||
sub Portable::CPAN::CORE:sort; # opcode | |||||
# spent 0s within Portable::CPAN::CORE:subst which was called:
# once (0s+0s) by Portable::CPAN::new at line 63 |