Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Overloading '{}' or 'sub'

by Corion (Patriarch)
on Jan 01, 2009 at 19:26 UTC ( [id://733659]=note: print w/replies, xml ) Need Help??


in reply to Overloading '{}' or 'sub'

Does Hook::LexWrap provide you with enough rope?

Maybe you can show us more exactly what you want to achieve. There also are Sub::Uplevel and Scope::Upper, which give you access to the variables of the route calling your code. These all provide you with lots of rope to hang yourself, in other words, I'm not exactly sure that what you want to achieve should be done through this.

The easiest way to "append" code to a subroutine is to just replace the subroutine with your own:

package Somewhere; sub test { print "leaving original test\n"; }; package My::Somewhere; use vars qw($old_test); $old_test = &Somewhere::test; *Somewhere::test = sub { $old_test->(@_); print "leaving overridden test\n"; };

But if you're trying to use overload, maybe you're dealing with objects? Then, the best way could maybe just be to subclass your target class instead of hacking its code?

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2024-04-23 21:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found