Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re^2: Core module: Attribute::Handlers behaviour

by Anonymous Monk
on Oct 21, 2012 at 10:46 UTC ( #1000198=note: print w/replies, xml ) Need Help??

in reply to Re: Core module: Attribute::Handlers behaviour
in thread Core module: Attribute::Handlers behaviour

I don't get that, even though your module doesn't return an object ( compared to Attribute::Constructor ), trace gets called if the phase is BEGIN

$ perl -le " eval qq/use Junk;/; print Junk->new " called with [Junk] returning [ Junk=HASH(0x3f8d1c) ] 1 $ cat package Junk; use Attribute::Handlers; #~ sub TRACE :ATTR(CODE,CHECK) { #~ sub TRACE :ATTR(CODE,INIT,CHECK) { #~ sub TRACE :ATTR(CODE,INIT) { sub TRACE :ATTR(CODE,BEGIN) { #~ sub TRACE :ATTR(CODE) { my ($pkg, $sym, $ref, $attr, $data, $phase, $file, $line) = @_; *{ $sym } = sub { warn "$file($line) called with [@_]\n"; my( @rc )= &$ref; warn "$file($line): returning [ @rc ]\n"; } } sub new :TRACE { my $instance = shift; my $class = ref($instance) || $instance; my $self = {}; return bless($self, $class); } 1;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1000198]
[Eily]: It can also be used to force a copy, and remove magic from a variable
[Eily]: there was a post some time ago about variable coming from regex taking more space than the same string defined directly IIRC
[Eily]: and if there's XS, make sure the scalar holds a string representation, that sounds like bad practice though (forcing that on the call side)
[choroba]: You should never pass $1 without double quotes to a sub
[choroba]: or "I should never", at least
[choroba]: that's not the sub's business

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (8)
As of 2018-02-22 17:16 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (296 votes). Check out past polls.