Attribute-Handlers

 view release on metacpan or  search on metacpan

demo/Demo.pm  view on Meta::CPAN

sub Demo : ATTR(SCALAR) {
	my ($package, $symbol, $referent, $attr, $data, $phase) = @_;
	$data = '<undef>' unless defined $data;
	print STDERR 'Scalar $', *{$symbol}{NAME},
		     " ($referent) was ascribed ${attr}\n",
		     "with data ($data)\nin phase $phase\n";
};

sub This : ATTR(SCALAR) {
	print STDERR "This at ",
		     join(":", map { defined() ? $_ : "" } caller(1)),
		     "\n";
}

sub Demo : ATTR(HASH) {
	my ($package, $symbol, $referent, $attr, $data) = @_;
	$data = '<undef>' unless defined $data;
	print STDERR 'Hash %', *{$symbol}{NAME},
		     " ($referent) was ascribed ${attr} with data ($data)\n";
};

lib/Attribute/Handlers.pm  view on Meta::CPAN

                            if (my $import = $isa->can('import')) {
                                goto &$import
                                    if $import != $uni;
                            }
                        }
                        goto &$uni
                            if $uni;
                    };
                }
                else {
                    $attr = caller()."::".$attr unless $attr =~ /::/;
                    eval qq{ sub $attr $code 1; }
                      or die "Internal error: $@";
                }
            }
        }
        else {
            croak "Can't understand $_"; 
        }
    }
}



( run in 1.440 second using v1.01-cache-2.11-cpan-8780591d54d )