package LoudDecl; use Attribute::Handlers; no warnings; sub Loud :ATTR { my ($package, $symbol, $referent, $attr, $data, $phase, $filename , $linenum) = @_; print STDERR ref($referent), " ", *{$symbol}{NAME}, " ", "($referent) ", "was just declared ", "and ascribed the ${attr} attribute ", "with data ($data)\n", "in phase $phase\n", "in file $filename at line $linenum\n"; my $tell=tell DATA; seek DATA,0,0; while () {print "> $_" if $.==$linenum }; seek DATA,$tell,0; } sub foo1 :Loud {print "HAHA"}; __DATA__ huhu