Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Naming Anonymous Subs

by Elian (Parson)
on Oct 20, 2004 at 21:33 UTC ( [id://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 foo.pl $ 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.

    blokhead

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2024-04-18 02:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found