| File | /usr/local/lib/perl/5.10.0/Sub/Name.pm |
| Statements Executed | 20 |
| Total Time | 0.0002793 seconds |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 435 | 5 | 5 | 3.98ms | 3.98ms | Sub::Name::subname(xsub) |
| 2 | 1 | 2 | 33µs | 33µs | Sub::Name::bootstrap(xsub) |
| 0 | 0 | 0 | 0s | 0s | Sub::Name::BEGIN |
| Line | Stmts. | Exclusive Time | Avg. | 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 | 92µs | 31µs | use 5.006; |
| 43 | ||||
| 44 | 3 | 32µs | 11µs | use strict; # spent 7µs making 1 call to strict::import |
| 45 | 3 | 50µs | 17µs | use warnings; # spent 30µs making 1 call to warnings::import |
| 46 | ||||
| 47 | 1 | 700ns | 700ns | our $VERSION = '0.04'; |
| 48 | ||||
| 49 | 3 | 26µs | 9µs | use base 'Exporter'; # spent 65µs making 1 call to base::import |
| 50 | 3 | 60µs | 20µs | use base 'DynaLoader'; # spent 68µs making 1 call to base::import |
| 51 | ||||
| 52 | 1 | 1µs | 1µs | our @EXPORT = qw(subname); |
| 53 | 1 | 900ns | 900ns | our @EXPORT_OK = @EXPORT; |
| 54 | ||||
| 55 | 1 | 9µs | 9µs | bootstrap Sub::Name $VERSION; # spent 243µs making 1 call to DynaLoader::bootstrap |
| 56 | ||||
| 57 | 1 | 7µs | 7µs | 1; |
# spent 33µs within Sub::Name::bootstrap which was called
# once (33µs+0s) by DynaLoader::bootstrap at line 219 of /usr/lib/perl/5.10/DynaLoader.pm | ||||
# spent 3.98ms within Sub::Name::subname which was called 434 times, avg 9µs/call:
# 326 times (3.18ms+0s) by Class::MOP::Mixin::HasMethods::add_method at line 88 of /usr/local/lib/perl/5.10.0/Class/MOP/Mixin/HasMethods.pm, avg 10µs/call
# 56 times (384µs+0s) by Moose::Exporter::_make_wrapped_sub_with_meta or Moose::Exporter::__ANON__[/usr/local/lib/perl/5.10.0/Moose/Exporter.pm:292] at line 287 of /usr/local/lib/perl/5.10.0/Moose/Exporter.pm, avg 7µs/call
# 46 times (368µs+0s) by Class::MOP::Class::add_around_method_modifier at line 962 of /usr/local/lib/perl/5.10.0/Class/MOP/Class.pm, avg 8µs/call
# 5 times (39µs+0s) by Moose::Meta::TypeConstraint::_compile_subtype or Moose::Meta::TypeConstraint::__ANON__[/usr/local/lib/perl/5.10.0/Moose/Meta/TypeConstraint.pm:268] at line 268 of /usr/local/lib/perl/5.10.0/Moose/Meta/TypeConstraint.pm, avg 8µs/call
# once (8µs+0s) by Moose::Meta::TypeConstraint::_compile_type or Moose::Meta::TypeConstraint::__ANON__[/usr/local/lib/perl/5.10.0/Moose/Meta/TypeConstraint.pm:281] at line 281 of /usr/local/lib/perl/5.10.0/Moose/Meta/TypeConstraint.pm |