← Index
Performance Profile   « block view • line view • sub view »
For /wise/base/deliv/dev/bin/framedepth
  Run on Fri May 28 15:23:26 2010
Reported on Fri May 28 15:26:22 2010

File/opt/wise/lib/perl5/5.10.0/strict.pm
Statements Executed449
Total Time0.001097 seconds

Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
7575740.000900.00093strict::import
32310.000480.00048strict::bits
3232250.000430.00085strict::unimport

LineStmts.Exclusive
Time
Avg.Code
1package strict;
2
311.0e-61.0e-6$strict::VERSION = "1.04";
4
5# Verify that we're called correctly so that strictures will work.
614.9e-54.9e-5unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) {
7 # Can't use Carp, since Carp uses us!
8 my (undef, $f, $l) = caller;
9 die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n");
10}
11
1214.0e-64.0e-6my %bitmask = (
13refs => 0x00000002,
14subs => 0x00000200,
15vars => 0x00000400
16);
17
18
# spent 477µs within strict::bits which was called 32 times, avg 15µs/call: # 29 times (416µs+0) by strict::unimport at line 41, avg 14µs/call # 2 times (26µs+0) by strict::import at line 36, avg 13µs/call # once (35µs+0) at line 32
sub bits {
191600.000231.4e-6 my $bits = 0;
20 my @wrong;
21 foreach my $s (@_) {
22700.000131.8e-6 push @wrong, $s unless exists $bitmask{$s};
23 $bits |= $bitmask{$s} || 0;
24 }
25 if (@wrong) {
26 require Carp;
27 Carp::croak("Unknown 'strict' tag(s) '@wrong'");
28 }
29 $bits;
30}
31
3212.4e-52.4e-5my $default_bits = bits(qw(refs subs vars));
# spent 35µs making 1 call to strict::bits
33
34
# spent 931µs (905+26) within strict::import which was called 75 times, avg 12µs/call: # once (43µs+0) at line 2 of /wise/base/deliv/dev/lib/perl/WISE/FITSIO/Utils.pm # once (36µs+0) at line 2 of /wise/base/static/lib/perl5/site_perl/5.10.0/Astro/Coord.pm # once (18µs+11µs) at line 3 of /opt/wise/lib/perl5/5.10.0/base.pm # once (29µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/x86_64-linux-thread-multi/WISE/IPACTblXS.pm # once (26µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/Params.pm # once (9µs+15µs) by vars::BEGIN at line 8 of /opt/wise/lib/perl5/5.10.0/vars.pm # once (23µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/re.pm # once (22µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/Spawn.pm # once (21µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/Inline.pm # once (16µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/Release.pm # once (16µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Base.pm # once (16µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/File/Glob.pm # once (16µs+0) at line 2 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/POSIX.pm # once (16µs+0) at line 2 of /wise/base/static/lib/perl5/site_perl/5.10.0/Astro/Time.pm # once (14µs+0) at line 2 of /wise/base/deliv/dev/lib/perl/WISE/CoUtils.pm # once (14µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/Wrap.pm # once (13µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Clone.pm # once (13µs+0) at line 2 of /wise/base/deliv/dev/lib/perl/WISE/IPACTbl.pm # once (13µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/x86_64-linux-thread-multi/WISE/CHealPix.pm # once (13µs+0) at line 9 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/List/Util.pm # once (12µs+0) at line 99 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Seekable.pm # once (12µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/x86_64-linux-thread-multi/WISE/CoUtilsXS.pm # once (12µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/PgAitoff.pm # once (12µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/Inline/denter.pm # once (12µs+0) at line 3 of /wise/base/deliv/dev/bin/framedepth # once (12µs+0) at line 6 of /opt/wise/lib/perl5/5.10.0/Time/Local.pm # once (11µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/UtilsLight.pm # once (11µs+0) at line 6 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Gzip.pm # once (11µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/BandUtils.pm # once (11µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Digest/MD5.pm # once (11µs+0) at line 1 of /wise/base/deliv/dev/lib/perl/WISE/Time.pm # once (10µs+0) at line 497 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Base/Common.pm # once (10µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Adapter/Deflate.pm # once (10µs+0) at line 3 of /wise/base/static/lib/perl5/site_perl/5.10.0/File/Slurp.pm # once (10µs+0) at line 9 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Scalar/Util.pm # once (10µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Astro/WCS/LibWCS.pm # once (10µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/File/GlobMapper.pm # once (10µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/IOUtils.pm # once (10µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Gzip/Constants.pm # once (10µs+0) at line 34 of /opt/wise/lib/perl5/5.10.0/Math/Complex.pm # once (10µs+0) at line 258 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Handle.pm # once (10µs+0) at line 5 of /wise/base/static/lib/perl5/site_perl/5.10.0/WISE/Env.pm # once (10µs+0) at line 9 of /wise/base/deliv/dev/lib/perl/FITSIO.pm # once (10µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/File/Path.pm # once (9µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/Utils.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Base/Common.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Adapter/Inflate.pm # once (9µs+0) at line 128 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/File.pm # once (9µs+0) at line 58 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Fcntl.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/AutoLoader.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/Digest/base.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Time/HiRes.pm # once (9µs+0) at line 3 of /wise/base/deliv/dev/lib/perl/WISE/Pars.pm # once (9µs+0) at line 8 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/Gunzip.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/constant.pm # once (9µs+0) at line 6 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Base.pm # once (9µs+0) at line 4 of /wise/base/static/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Astro/FITS/CFITSIO.pm # once (9µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/File/Spec/Unix.pm # once (9µs+0) at line 9 of /wise/base/deliv/dev/lib/perl/WISE/FITSIO.pm # once (8µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/Exporter/Heavy.pm # once (8µs+0) at line 170 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Cwd.pm # once (8µs+0) at line 12 of /opt/wise/lib/perl5/5.10.0/Text/Tabs.pm # once (8µs+0) at line 16 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Compress/Zlib.pm # once (8µs+0) at line 3 of /opt/wise/lib/perl5/5.10.0/File/Spec.pm # once (8µs+0) at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/threads/shared.pm # once (8µs+0) at line 11 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Compress/Raw/Zlib.pm # once (8µs+0) at line 12 of /wise/base/static/lib/perl5/site_perl/5.10.0/Time/Timezone.pm # once (8µs+0) at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/RawDeflate.pm # once (8µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/FileHandle.pm # once (8µs+0) at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Config.pm # once (8µs+0) at line 50 of /opt/wise/lib/perl5/5.10.0/File/Basename.pm # once (8µs+0) at line 7 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO.pm # once (8µs+0) at line 5 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Compress/Zlib/Extra.pm # once (7µs+0) at line 4 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Uncompress/RawInflate.pm # once (7µs+0) by lib::BEGIN at line 8 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/lib.pm
sub import {
351500.000362.4e-6 shift;
36 $^H |= @_ ? bits(@_) : $default_bits;
# spent 26µs making 2 calls to strict::bits, avg 13µs/call
37}
38
39
# spent 849µs (433+416) within strict::unimport which was called 32 times, avg 27µs/call: # once (36µs+12µs) by constant::import at line 38 of /opt/wise/lib/perl5/5.10.0/constant.pm # once (32µs+15µs) by WISE::Utils::BEGIN or WISE::Utils::lockit at line 1535 of /wise/base/deliv/dev/lib/perl/WISE/Utils.pm # once (12µs+33µs) by WISE::Time::OO::BEGIN or WISE::Time::OO::AUTOLOAD at line 698 of /wise/base/deliv/dev/lib/perl/WISE/Time.pm # once (10µs+33µs) by Config::BEGIN or Config::import at line 31 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Config.pm # once (20µs+21µs) by FileHandle::BEGIN at line 46 of /opt/wise/lib/perl5/5.10.0/FileHandle.pm # once (26µs+12µs) by Inline::push_overrides at line 304 of /wise/base/static/lib/perl5/site_perl/5.10.0/Inline.pm # once (12µs+20µs) by Astro::WCS::LibWCS::BEGIN or Astro::WCS::LibWCS::AUTOLOAD at line 454 of /wise/base/static/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Astro/WCS/LibWCS.pm # once (15µs+16µs) by Fcntl::BEGIN or Fcntl::AUTOLOAD at line 239 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Fcntl.pm # once (10µs+19µs) by IO::Handle::BEGIN or IO::Handle::constant at line 611 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/IO/Handle.pm # once (15µs+14µs) by WISE::UtilsLight::OO::BEGIN or WISE::UtilsLight::OO::AUTOLOAD at line 1387 of /wise/base/deliv/dev/lib/perl/WISE/UtilsLight.pm # once (15µs+14µs) by WISE::Wrap::OO::BEGIN or WISE::Wrap::OO::AUTOLOAD at line 2034 of /wise/base/deliv/dev/lib/perl/WISE/Wrap.pm # once (18µs+11µs) by File::Spec::Unix::BEGIN or File::Spec::Unix::_tmpdir at line 144 of /opt/wise/lib/perl5/5.10.0/File/Spec/Unix.pm # once (13µs+13µs) by Cwd::BEGIN at line 731 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Cwd.pm # once (10µs+15µs) by constant::BEGIN or constant::import at line 101 of /opt/wise/lib/perl5/5.10.0/constant.pm # once (11µs+14µs) by Inline::denter::BEGIN or Inline::denter::undent at line 35 of /wise/base/static/lib/perl5/site_perl/5.10.0/Inline/denter.pm # once (12µs+13µs) by Compress::Zlib::AUTOLOAD at line 49 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Compress/Zlib.pm # once (12µs+13µs) by Inline::BEGIN or Inline::with_configs at line 964 of blib/lib/Inline.pm # once (13µs+10µs) by Compress::Raw::Zlib::AUTOLOAD at line 73 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Compress/Raw/Zlib.pm # once (10µs+13µs) by threads::shared::BEGIN or threads::shared::import at line 52 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/threads/shared.pm # once (11µs+11µs) by AutoLoader::AUTOLOAD at line 30 of /opt/wise/lib/perl5/5.10.0/AutoLoader.pm # once (9µs+13µs) by Inline::read_DATA at line 336 of /wise/base/static/lib/perl5/site_perl/5.10.0/Inline.pm # once (9µs+12µs) by File::Path::BEGIN or File::Path::_rmtree at line 265 of /opt/wise/lib/perl5/5.10.0/File/Path.pm # once (9µs+12µs) by Inline::pop_overrides at line 320 of /wise/base/static/lib/perl5/site_perl/5.10.0/Inline.pm # once (11µs+9µs) by AutoLoader::can at line 65 of /opt/wise/lib/perl5/5.10.0/AutoLoader.pm # once (10µs+10µs) by AutoLoader::BEGIN or AutoLoader::unimport at line 199 of /opt/wise/lib/perl5/5.10.0/AutoLoader.pm # once (11µs+9µs) by WISE::Utils::OO::BEGIN or WISE::Utils::OO::AUTOLOAD at line 1993 of /wise/base/deliv/dev/lib/perl/WISE/Utils.pm # once (10µs+10µs) by Time::HiRes::BEGIN or Time::HiRes::AUTOLOAD at line 42 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/Time/HiRes.pm # once (9µs+10µs) by AutoLoader::import at line 153 of /opt/wise/lib/perl5/5.10.0/AutoLoader.pm # once (9µs+9µs) at line 4 of /opt/wise/lib/perl5/5.10.0/Exporter/Heavy.pm # once (12µs+0) by POSIX::AUTOLOAD at line 40 of /opt/wise/lib/perl5/5.10.0/x86_64-linux-thread-multi/POSIX.pm # once (11µs+0) by Astro::FITS::CFITSIO::BEGIN or Astro::FITS::CFITSIO::AUTOLOAD at line 779 of /wise/base/static/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi/Astro/FITS/CFITSIO.pm # once (10µs+0) by WISE::Env::_export at line 267 of /wise/base/static/lib/perl5/site_perl/5.10.0/WISE/Env.pm
sub unimport {
40640.000294.5e-6 shift;
41 $^H &= ~ (@_ ? bits(@_) : $default_bits);
# spent 416µs making 29 calls to strict::bits, avg 14µs/call
42}
43
4411.3e-51.3e-51;
45__END__
46
47=head1 NAME
48
49strict - Perl pragma to restrict unsafe constructs
50
51=head1 SYNOPSIS
52
53 use strict;
54
55 use strict "vars";
56 use strict "refs";
57 use strict "subs";
58
59 use strict;
60 no strict "vars";
61
62=head1 DESCRIPTION
63
64If no import list is supplied, all possible restrictions are assumed.
65(This is the safest mode to operate in, but is sometimes too strict for
66casual programming.) Currently, there are three possible things to be
67strict about: "subs", "vars", and "refs".
68
69=over 6
70
71=item C<strict refs>
72
73This generates a runtime error if you
74use symbolic references (see L<perlref>).
75
76 use strict 'refs';
77 $ref = \$foo;
78 print $$ref; # ok
79 $ref = "foo";
80 print $$ref; # runtime error; normally ok
81 $file = "STDOUT";
82 print $file "Hi!"; # error; note: no comma after $file
83
84There is one exception to this rule:
85
86 $bar = \&{'foo'};
87 &$bar;
88
89is allowed so that C<goto &$AUTOLOAD> would not break under stricture.
90
91
92=item C<strict vars>
93
94This generates a compile-time error if you access a variable that wasn't
95declared via C<our> or C<use vars>,
96localized via C<my()>, or wasn't fully qualified. Because this is to avoid
97variable suicide problems and subtle dynamic scoping issues, a merely
98local() variable isn't good enough. See L<perlfunc/my> and
99L<perlfunc/local>.
100
101 use strict 'vars';
102 $X::foo = 1; # ok, fully qualified
103 my $foo = 10; # ok, my() var
104 local $foo = 9; # blows up
105
106 package Cinna;
107 our $bar; # Declares $bar in current package
108 $bar = 'HgS'; # ok, global declared via pragma
109
110The local() generated a compile-time error because you just touched a global
111name without fully qualifying it.
112
113Because of their special use by sort(), the variables $a and $b are
114exempted from this check.
115
116=item C<strict subs>
117
118This disables the poetry optimization, generating a compile-time error if
119you try to use a bareword identifier that's not a subroutine, unless it
120is a simple identifier (no colons) and that it appears in curly braces or
121on the left hand side of the C<< => >> symbol.
122
123 use strict 'subs';
124 $SIG{PIPE} = Plumber; # blows up
125 $SIG{PIPE} = "Plumber"; # just fine: quoted string is always ok
126 $SIG{PIPE} = \&Plumber; # preferred form
127
128=back
129
130See L<perlmodlib/Pragmatic Modules>.
131
132=head1 HISTORY
133
134C<strict 'subs'>, with Perl 5.6.1, erroneously permitted to use an unquoted
135compound identifier (e.g. C<Foo::Bar>) as a hash key (before C<< => >> or
136inside curlies), but without forcing it always to a literal string.
137
138Starting with Perl 5.8.1 strict is strict about its restrictions:
139if unknown restrictions are used, the strict pragma will abort with
140
141 Unknown 'strict' tag(s) '...'
142
143As of version 1.04 (Perl 5.10), strict verifies that it is used as
144"strict" to avoid the dreaded Strict trap on case insensitive file
145systems.
146
147=cut