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
) {
join(":", map { defined() ?
$_ : "" } caller(1)),
my ($package, $symbol, $referent, $attr, $data) = @_;
$data = '<undef>' unless defined $data;
print STDERR
'Hash %', *{$symbol}{NAME
},
" ($referent) was ascribed ${attr} with data ($data)\n";
my ($package, $symbol, $referent, $attr, $data) = @_;
$data = '<undef>' unless defined $data;
print STDERR
'Sub &', *{$symbol}{NAME
},
" ($referent) was ascribed ${attr} with data ($data)\n";
my ($package, $symbol, $referent, $attr, $data) = @_;
$data = '<undef>' unless defined $data;
print STDERR
ref($referent), ' ', *{$symbol}{NAME
},
" ($referent) was ascribed ${attr} with data ($data)\n";
sub ExplMulti
: ATTR
(ANY
) {
my ($package, $symbol, $referent, $attr, $data) = @_;
$data = '<undef>' unless defined $data;
print STDERR
ref($referent), ' ', *{$symbol}{NAME
},
" ($referent) was ascribed ${attr} with data ($data)\n";