Sub::Identify - Retrieve names of code references
use Sub::Identify ':all'; my $subname = sub_name( $some_coderef ); my $p = stash_name( $some_coderef ); my $fully_qualified_name = sub_fullname( $some_coderef ); defined $subname and say "this coderef points to sub $subname in package $p"; my ($file, $line) = get_code_location( $some_coderef ); is_sub_constant( $some_coderef ) and say "this coderef points to a constant subroutine";
Sub::Identify allows you to retrieve the real name of code references.
Sub::Identify
It provides four functions : sub_name returns the name of the subroutine (or __ANON__ if it's an anonymous code reference), stash_name returns its package, and sub_fullname returns the concatenation of the two.
sub_name
__ANON__
stash_name
sub_fullname
The fourth function, get_code_info, returns a list of two elements, the package and the subroutine name (in case of you want both and are worried by the speed.)
get_code_info
In case of subroutine aliasing, those functions always return the original name.
By default Sub::Identify tries to load an XS implementation of the get_code_info function, for speed; if that fails, or if the environment variable PERL_SUB_IDENTIFY_PP is defined to a true value, it will fall back to a pure perl implementation, that uses perl's introspection mechanism, provided by the B module.
B
Sub::Util, part of the module distribution Scalar::List::Utils since version 1.40.
Sub::Name
A git repository for the sources is at https://github.com/rgs/Sub-Identify.
(c) Rafael Garcia-Suarez (rgs at consttype dot org) 2005, 2008, 2012, 2014
This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.
To install Sub::Identify, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sub::Identify
CPAN shell
perl -MCPAN -e shell install Sub::Identify
For more information on module installation, please visit the detailed CPAN module installation guide.