Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Re: File::Find incompatible with OO perl?

by vaevictus (Pilgrim)
on Feb 09, 2004 at 17:09 UTC ( #327670=note: print w/replies, xml ) Need Help??


in reply to Re: File::Find incompatible with OO perl?
in thread File::Find incompatible with OO perl?

Just curious, but why would I "want the anonymous sub call to disappear from the calling stack"?
  • Comment on Re: Re: File::Find incompatible with OO perl?

Replies are listed 'Best First'.
Re: Re: Re: File::Find incompatible with OO perl?
by broquaint (Abbot) on Feb 09, 2004 at 17:26 UTC
    In case you croak (or something else that produces a stacktrace) within the the found method e.g
    use Carp 'croak'; sub exec_anon { &{$_[0]} } sub boom { eval { croak "$_[0]\->boom" }; print "trace: $@" } exec_anon sub { main->boom }; exec_anon sub { unshift @_, 'main'; goto &{main->can("boom")} }; __output__ trace: main->boom at - line 4 eval {...} called at - line 4 main::boom('main') called at - line 6 main::__ANON__ called at - line 3 main::exec_anon('CODE(0x8107e64)') called at - line 6 trace: main->boom at - line 4 eval {...} called at - line 4 main::boom called at - line 3 main::exec_anon('main', 'CODE(0x8117378)') called at - line 7
    Not terrifically important, or necessarily desired, but it can be much easier to follow things if wrapper functions are hidden away and it's safer if you're dealing with code that looks up the stack (for whatever reason). Use with caution™.
    HTH

    _________
    broquaint

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2022-01-18 05:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:












    Results (52 votes). Check out past polls.

    Notices?