in reply to Invalid SCALAR attribute?
package Canine; use Attribute::Handlers; sub Watchful : ATTR(SCALAR) { my ($package, $symbol, $referent, $attr, $data) = @_; print "Watchful called with $package, $symbol, $referent, $attr, $ +data\n"; } my Canine $spot : Watchful; __OUTPUT__ Watchful called with Canine, LEXICAL, SCALAR(0x81606a4), Watchful,
Also note that handler subs on lexicals get called at run-time, even though most other handlers get called at compile time, and all checking appears to be done at compile time too.
I've never used this construct, though, so I suggest reading the Attribute::Handlers documentation.
J.
|
|---|