Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: Naming Anonymous Subs

by Elian (Parson)
on Oct 20, 2004 at 21:33 UTC ( #400995=note: print w/replies, xml ) Need Help??

in reply to Naming Anonymous Subs

Any reason to not just shove the anonymous sub reference into the appropriate slot in the glob in the global namespace? Not that I'm against XS by any means, but:
   *Foo::Bar::baz{CODE} = $coderef
seems fairly straightforward...

Replies are listed 'Best First'.
Re^2: Naming Anonymous Subs
by blokhead (Monsignor) on Oct 20, 2004 at 22:21 UTC
    There are at least two reasons that I can think of..
    1. caller:
      sub whoami { print +(caller 1)[3], $/ } + *main::foo = sub { whoami() }; + foo(); __END__ main::__ANON__
    2. DProf:
      *main::foo = sub { sleep 1; }; + foo() for 1..5; __END__ $ perl -d:DProf $ dprofpp tmon.out Total Elapsed Time = 5.00996 Seconds User+System Time = 0 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 0.00 - -0.000 5 - - main::__ANON__
    When you have a lot of different anonymous subs floating around, it's a pain in the butt to profile, because all calls to anonymous subs land in main::__ANON__ as far as DProf is concerned.

    There's a trick involving local *__ANON__, which works for caller but not DProf.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://400995]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2021-06-22 10:27 GMT
Find Nodes?
    Voting Booth?
    What does the "s" stand for in "perls"? (Whence perls)

    Results (102 votes). Check out past polls.