Attribute-Handlers
view release on metacpan or search on metacpan
lib/Attribute/Handlers.pm view on Meta::CPAN
135136137138139140141142143144145146147148149150151152153154155sub
AUTOLOAD {
return
if
$AUTOLOAD
=~ /::DESTROY$/;
my
(
$class
) =
$AUTOLOAD
=~ m/(.*)::/g;
$AUTOLOAD
=~ m/_ATTR_(.*?)_(.*)/ or
croak
"Can't locate class method '$AUTOLOAD' via package '$class'"
;
croak
"Attribute handler '$2' doesn't handle $1 attributes"
;
}
my
$builtin
=
qr/lvalue|method|locked|unique|shared/
;
sub
_gen_handler_AH_() {
return
sub
{
_resolve_lastattr
if
_delayed_name_resolution;
my
(
$pkg
,
$ref
,
@attrs
) =
@_
;
my
(
undef
,
$filename
,
$linenum
) =
caller
2;
foreach
(
@attrs
) {
my
(
$attr
,
$data
) = /^([a-z_]\w*)(?:[(](.*)[)])?$/is or
next
;
if
(
$attr
eq
'ATTR'
) {
no
strict
'refs'
;
$data
||=
"ANY"
;
$raw
{
$ref
} =
$data
=~ s/\s*,?\s
*RAWDATA
\s*,?\s*//;
( run in 0.229 second using v1.01-cache-2.11-cpan-a5abf4f5562 )