Class-Closure

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

      ]
   },
   "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"

META.yml  view on Meta::CPAN

  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 )