File | /usr/local/lib/perl5/5.8.8/i686-linux/Config.pm |
Statements Executed | 52 |
Statement Execution Time | 1.65ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
3 | 3 | 3 | 209µs | 209µs | import | Config::
7 | 6 | 3 | 149µs | 149µs | FETCH | Config::
0 | 0 | 0 | 0s | 0s | AUTOLOAD | Config::
0 | 0 | 0 | 0s | 0s | BEGIN | Config::
0 | 0 | 0 | 0s | 0s | DESTROY | Config::
0 | 0 | 0 | 0s | 0s | TIEHASH | Config::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # This file was created by configpm when Perl was built. Any changes | ||||
2 | # made to this file will be lost the next time perl is built. | ||||
3 | |||||
4 | package Config; | ||||
5 | 3 | 314µs | 1 | 25µs | use strict; # spent 25µs making 1 call to strict::import |
6 | # use warnings; Pulls in Carp | ||||
7 | # use vars pulls in Carp | ||||
8 | 1 | 8µs | @Config::EXPORT = qw(%Config); | ||
9 | 1 | 7µs | @Config::EXPORT_OK = qw(myconfig config_sh config_vars config_re); | ||
10 | |||||
11 | # Need to stub all the functions to make code such as print Config::config_sh | ||||
12 | # keep working | ||||
13 | |||||
14 | sub myconfig; | ||||
15 | sub config_sh; | ||||
16 | sub config_vars; | ||||
17 | sub config_re; | ||||
18 | |||||
19 | 1 | 17µs | my %Export_Cache = map {($_ => 1)} (@Config::EXPORT, @Config::EXPORT_OK); | ||
20 | |||||
21 | 1 | 5µs | our %Config; | ||
22 | |||||
23 | # Define our own import method to avoid pulling in the full Exporter: | ||||
24 | # spent 209µs within Config::import which was called 3 times, avg 70µs/call:
# once (73µs+0s) by LWP::Protocol::implementor at line 8 of Errno.pm
# once (72µs+0s) by base::import at line 25 of DynaLoader.pm
# once (64µs+0s) by Class::DBI::_require_class at line 5 of Time/Local.pm | ||||
25 | 3 | 19µs | my $pkg = shift; | ||
26 | 3 | 24µs | @_ = @Config::EXPORT unless @_; | ||
27 | |||||
28 | 3 | 19µs | my @funcs = grep $_ ne '%Config', @_; | ||
29 | 3 | 17µs | my $export_Config = @funcs < @_ ? 1 : 0; | ||
30 | |||||
31 | 3 | 732µs | 1 | 120µs | no strict 'refs'; # spent 120µs making 1 call to strict::unimport |
32 | 3 | 19µs | my $callpkg = caller(0); | ||
33 | 3 | 31µs | foreach my $func (@funcs) { | ||
34 | die sprintf qq{"%s" is not exported by the %s module\n}, | ||||
35 | $func, __PACKAGE__ unless $Export_Cache{$func}; | ||||
36 | *{$callpkg.'::'.$func} = \&{$func}; | ||||
37 | } | ||||
38 | |||||
39 | 3 | 40µs | *{"$callpkg\::Config"} = \%Config if $export_Config; | ||
40 | 3 | 74µs | return; | ||
41 | } | ||||
42 | |||||
43 | 1 | 5µs | die "Perl lib version (v5.8.8) doesn't match executable version ($])" | ||
44 | unless $^V; | ||||
45 | |||||
46 | 1 | 14µs | $^V eq v5.8.8 | ||
47 | or die "Perl lib version (v5.8.8) doesn't match executable version (" . | ||||
48 | sprintf("v%vd",$^V) . ")"; | ||||
49 | |||||
50 | |||||
51 | # spent 149µs within Config::FETCH which was called 7 times, avg 21µs/call:
# 2 times (44µs+0s) by LWP::Protocol::implementor at line 11 of Errno.pm, avg 22µs/call
# once (26µs+0s) by base::import at line 80 of DynaLoader.pm
# once (26µs+0s) by Class::DBI::_require_class at line 34 of Time/Local.pm
# once (18µs+0s) by base::import at line 85 of DynaLoader.pm
# once (18µs+0s) by base::import at line 83 of DynaLoader.pm
# once (17µs+0s) by base::import at line 84 of DynaLoader.pm | ||||
52 | 7 | 39µs | my($self, $key) = @_; | ||
53 | |||||
54 | # check for cached value (which may be undef so we use exists not defined) | ||||
55 | 7 | 158µs | return $self->{$key} if exists $self->{$key}; | ||
56 | |||||
57 | return $self->fetch_string($key); | ||||
58 | } | ||||
59 | sub TIEHASH { | ||||
60 | 1 | 26µs | bless $_[1], $_[0]; | ||
61 | } | ||||
62 | |||||
63 | sub DESTROY { } | ||||
64 | |||||
65 | sub AUTOLOAD { | ||||
66 | require 'Config_heavy.pl'; | ||||
67 | goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; | ||||
68 | die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; | ||||
69 | } | ||||
70 | |||||
71 | # tie returns the object, so the value returned to require will be true. | ||||
72 | 1 | 77µs | tie %Config, 'Config', { | ||
73 | archlibexp => '/usr/local/lib/perl5/5.8.8/i686-linux', | ||||
74 | archname => 'i686-linux', | ||||
75 | cc => 'cc', | ||||
76 | d_readlink => 'define', | ||||
77 | d_symlink => 'define', | ||||
78 | dlsrc => 'dl_dlopen.xs', | ||||
79 | dont_use_nlink => undef, | ||||
80 | exe_ext => '', | ||||
81 | inc_version_list => ' ', | ||||
82 | intsize => '4', | ||||
83 | ldlibpthname => 'LD_LIBRARY_PATH', | ||||
84 | libpth => '/usr/local/lib /lib /usr/lib', | ||||
85 | osname => 'linux', | ||||
86 | osvers => '2.6.9-42.0.10.el', | ||||
87 | path_sep => ':', | ||||
88 | privlibexp => '/usr/local/lib/perl5/5.8.8', | ||||
89 | scriptdir => '/usr/local/bin', | ||||
90 | sitearchexp => '/usr/local/lib/perl5/site_perl/5.8.8/i686-linux', | ||||
91 | sitelibexp => '/usr/local/lib/perl5/site_perl/5.8.8', | ||||
92 | useithreads => undef, | ||||
93 | usevendorprefix => undef, | ||||
94 | version => '5.8.8', | ||||
95 | }; |