Upgrade to Attribute::Handlers 0.70.
[p5sagit/p5-mst-13.2.git] / lib / Attribute / Handlers / demo / Demo.pm
CommitLineData
04070b92 1$DB::single = 1;
2
3package Demo;
4use Attribute::Handlers;
5no warnings 'redefine';
6
7sub Demo : ATTR(SCALAR) {
8 my ($package, $symbol, $referent, $attr, $data, $phase) = @_;
9 $data = '<undef>' unless defined $data;
10 print STDERR 'Scalar $', *{$symbol}{NAME},
11 " ($referent) was ascribed ${attr}\n",
12 "with data ($data)\nin phase $phase\n";
13};
14
15sub This : ATTR(SCALAR) {
16 print STDERR "This at ",
17 join(":", map { defined() ? $_ : "" } caller(1)),
18 "\n";
19}
20
21sub Demo : ATTR(HASH) {
22 my ($package, $symbol, $referent, $attr, $data) = @_;
23 $data = '<undef>' unless defined $data;
24 print STDERR 'Hash %', *{$symbol}{NAME},
25 " ($referent) was ascribed ${attr} with data ($data)\n";
26};
27
28sub Demo : ATTR(CODE) {
29 my ($package, $symbol, $referent, $attr, $data) = @_;
30 $data = '<undef>' unless defined $data;
31 print STDERR 'Sub &', *{$symbol}{NAME},
32 " ($referent) was ascribed ${attr} with data ($data)\n";
33};
34
35sub Multi : ATTR {
36 my ($package, $symbol, $referent, $attr, $data) = @_;
37 $data = '<undef>' unless defined $data;
38 print STDERR ref($referent), ' ', *{$symbol}{NAME},
39 " ($referent) was ascribed ${attr} with data ($data)\n";
40};
41
42sub ExplMulti : ATTR(ANY) {
43 my ($package, $symbol, $referent, $attr, $data) = @_;
44 $data = '<undef>' unless defined $data;
45 print STDERR ref($referent), ' ', *{$symbol}{NAME},
46 " ($referent) was ascribed ${attr} with data ($data)\n";
47};
48
491;