| File | /usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Sub/Name.pm |
| Statements Executed | 20 |
| Statement Execution Time | 206µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1097 | 11 | 7 | 2.73ms | 2.73ms | Sub::Name::subname (xsub) |
| 1 | 1 | 1 | 42µs | 42µs | Sub::Name::BEGIN@42 |
| 1 | 1 | 2 | 17µs | 17µs | Sub::Name::bootstrap (xsub) |
| 1 | 1 | 1 | 7µs | 10µs | Sub::Name::BEGIN@44 |
| 1 | 1 | 1 | 7µs | 16µs | Sub::Name::BEGIN@45 |
| 1 | 1 | 1 | 6µs | 3.75ms | Sub::Name::BEGIN@50 |
| 1 | 1 | 1 | 6µs | 46µs | Sub::Name::BEGIN@49 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Sub::Name; | ||||
| 2 | |||||
| 3 | =head1 NAME | ||||
| 4 | |||||
| 5 | Sub::Name - (re)name a sub | ||||
| 6 | |||||
| 7 | =head1 SYNOPSIS | ||||
| 8 | |||||
| 9 | use Sub::Name; | ||||
| 10 | |||||
| 11 | subname $name, $subref; | ||||
| 12 | |||||
| 13 | $subref = subname foo => sub { ... }; | ||||
| 14 | |||||
| 15 | =head1 DESCRIPTION | ||||
| 16 | |||||
| 17 | This module has only one function, which is also exported by default: | ||||
| 18 | |||||
| 19 | =head2 subname NAME, CODEREF | ||||
| 20 | |||||
| 21 | Assigns a new name to referenced sub. If package specification is omitted in | ||||
| 22 | the name, then the current package is used. The return value is the sub. | ||||
| 23 | |||||
| 24 | The name is only used for informative routines (caller, Carp, etc). You won't | ||||
| 25 | be able to actually invoke the sub by the given name. To allow that, you need | ||||
| 26 | to do glob-assignment yourself. | ||||
| 27 | |||||
| 28 | Note that for anonymous closures (subs that reference lexicals declared outside | ||||
| 29 | the sub itself) you can name each instance of the closure differently, which | ||||
| 30 | can be very useful for debugging. | ||||
| 31 | |||||
| 32 | =head1 AUTHOR | ||||
| 33 | |||||
| 34 | Matthijs van Duin <xmath@cpan.org> | ||||
| 35 | |||||
| 36 | Copyright (C) 2004, 2008 Matthijs van Duin. All rights reserved. | ||||
| 37 | This program is free software; you can redistribute it and/or modify | ||||
| 38 | it under the same terms as Perl itself. | ||||
| 39 | |||||
| 40 | =cut | ||||
| 41 | |||||
| 42 | 3 | 55µs | 1 | 42µs | # spent 42µs within Sub::Name::BEGIN@42 which was called
# once (42µs+0s) by Class::MOP::Mixin::HasMethods::BEGIN@12 at line 42 # spent 42µs making 1 call to Sub::Name::BEGIN@42 |
| 43 | |||||
| 44 | 3 | 20µs | 2 | 13µs | # spent 10µs (7+3) within Sub::Name::BEGIN@44 which was called
# once (7µs+3µs) by Class::MOP::Mixin::HasMethods::BEGIN@12 at line 44 # spent 10µs making 1 call to Sub::Name::BEGIN@44
# spent 3µs making 1 call to strict::import |
| 45 | 3 | 29µs | 2 | 26µs | # spent 16µs (7+9) within Sub::Name::BEGIN@45 which was called
# once (7µs+9µs) by Class::MOP::Mixin::HasMethods::BEGIN@12 at line 45 # spent 16µs making 1 call to Sub::Name::BEGIN@45
# spent 9µs making 1 call to warnings::import |
| 46 | |||||
| 47 | 1 | 800ns | our $VERSION = '0.04'; | ||
| 48 | |||||
| 49 | 3 | 23µs | 2 | 85µs | # spent 46µs (6+39) within Sub::Name::BEGIN@49 which was called
# once (6µs+39µs) by Class::MOP::Mixin::HasMethods::BEGIN@12 at line 49 # spent 46µs making 1 call to Sub::Name::BEGIN@49
# spent 39µs making 1 call to base::import |
| 50 | 3 | 65µs | 2 | 7.50ms | # spent 3.75ms (6µs+3.75) within Sub::Name::BEGIN@50 which was called
# once (6µs+3.75ms) by Class::MOP::Mixin::HasMethods::BEGIN@12 at line 50 # spent 3.75ms making 1 call to Sub::Name::BEGIN@50
# spent 3.75ms making 1 call to base::import |
| 51 | |||||
| 52 | 1 | 900ns | our @EXPORT = qw(subname); | ||
| 53 | 1 | 400ns | our @EXPORT_OK = @EXPORT; | ||
| 54 | |||||
| 55 | 1 | 4µs | 1 | 289µs | bootstrap Sub::Name $VERSION; # spent 289µs making 1 call to DynaLoader::bootstrap |
| 56 | |||||
| 57 | 1 | 7µs | 1; | ||
# spent 17µs within Sub::Name::bootstrap which was called
# once (17µs+0s) by DynaLoader::bootstrap at line 227 of DynaLoader.pm | |||||
# spent 2.73ms within Sub::Name::subname which was called 1097 times, avg 2µs/call:
# 525 times (1.51ms+0s) by Class::MOP::Mixin::HasMethods::add_method at line 66 of Class/MOP/Mixin/HasMethods.pm, avg 3µs/call
# 384 times (745µs+0s) by Moose::Exporter::__ANON__[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Moose/Exporter.pm:263] at line 258 of Moose/Exporter.pm, avg 2µs/call
# 65 times (158µs+0s) by Class::MOP::Class::add_around_method_modifier at line 705 of Class/MOP/Class.pm, avg 2µs/call
# 35 times (81µs+0s) by MooseX::Types::type_export_generator at line 417 of MooseX/Types.pm, avg 2µs/call
# 22 times (54µs+0s) by Class::MOP::Class::add_after_method_modifier at line 695 of Class/MOP/Class.pm, avg 2µs/call
# 21 times (41µs+0s) by Moose::Exporter::__ANON__[/usr/local/lib/perl5/site_perl/5.10.1/darwin-2level/Moose/Exporter.pm:241] at line 236 of Moose/Exporter.pm, avg 2µs/call
# 13 times (44µs+0s) by Class::MOP::Class::add_before_method_modifier at line 685 of Class/MOP/Class.pm, avg 3µs/call
# 11 times (43µs+0s) by Moose::Meta::TypeConstraint::_compile_subtype at line 253 of Moose/Meta/TypeConstraint.pm, avg 4µs/call
# 10 times (26µs+0s) by Moose::Meta::TypeConstraint::_compile_subtype at line 266 of Moose/Meta/TypeConstraint.pm, avg 3µs/call
# 10 times (16µs+0s) by SimpleDB::Class::Item::_install_sub at line 26 of ../lib/SimpleDB/Class/Item.pm, avg 2µs/call
# once (12µs+0s) by Moose::Meta::TypeConstraint::_compile_type at line 279 of Moose/Meta/TypeConstraint.pm |