Class-Closure
view release on metacpan or search on metacpan
]
},
"prereqs" : {
"build" : {},
"configure" : {},
"runtime" : {
"requires" : {
"Carp" : "0",
"Devel::Caller" : "0",
"Exporter" : "0",
"PadWalker" : "0",
"Sentinel" : "0",
"Symbol" : "0",
"perl" : "5.006"
}
},
"test" : {
"requires" : {
"File::Find" : "0",
"File::Temp" : "0",
"Test::More" : "0.88"
version: '1.4'
name: Class-Closure
no_index:
directory:
- t
- inc
requires:
Carp: '0'
Devel::Caller: '0'
Exporter: '0'
PadWalker: '0'
Sentinel: '0'
Symbol: '0'
perl: '5.006'
resources:
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Class-Closure
license: http://dev.perl.org/licenses/
repository: https://github.com/ap/Class-Closure.git
version: '0.304'
x_copyright:
holder: 'Aristotle Pagaltzis'
Makefile.PL view on Meta::CPAN
bugtracker => { web => $bt },
},
dynamic_config => 0,
prereqs => {
runtime => {
requires => {qw(
perl 5.006
Carp 0
Devel::Caller 0
Exporter 0
PadWalker 0
Sentinel 0
Symbol 0
)},
},
test => {
requires => {qw(
File::Find 0
File::Temp 0
Test::More 0.88
)},
lib/Class/Closure.pm view on Meta::CPAN
{
my $counter = 0;
sub _make_package {
"Class::Closure::_package_" . $counter++;
}
}
sub _find_name {
my ( $var, $code ) = @_;
require PadWalker;
my %names = reverse %{ PadWalker::peek_sub( $code ) };
my $name = $names{ $var } || Carp::croak "Couldn't find lexical name for $var";
$name =~ s/^[\$\@%]//;
$name;
}
sub has (\$) : lvalue {
my ( $var ) = @_;
require Devel::Caller;
my $name = _find_name $var, Devel::Caller::caller_cv(1);
( run in 0.765 second using v1.01-cache-2.11-cpan-05444aca049 )