in reply to Hijacking a method
package Obj; sub new { my $class = shift; my $id = shift; return bless { id => $id }, $class; } sub method1 { my $self = shift; print "Object $self->{'id'}: Method 1\n"; } sub method2 { my $self = shift; print "Object $self->{'id'}: Method 2\n"; } package main; use Hook::LexWrap; wrap 'Obj::method1', pre => sub { print "PRE method1\n" }, post => sub + { print "POST method1\n\n" }; wrap 'Obj::method2', pre => sub { print "PRE method2\n" }, post => sub + { print "POST method2\n\n" }; my $object1 = new Obj(1); my $object2 = new Obj(2); $object1->method1; $object1->method2; $object2->method1; $object2->method2; ## OUTPUT PRE method1 Object 1: Method 1 POST method1 PRE method2 Object 1: Method 2 POST method2 PRE method1 Object 2: Method 1 POST method1 PRE method2 Object 2: Method 2 POST method2
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Hijacking a method
by Transient (Hermit) on Jun 17, 2009 at 17:14 UTC | |
by jettero (Monsignor) on Jun 17, 2009 at 17:50 UTC | |
by lostjimmy (Chaplain) on Jun 17, 2009 at 18:32 UTC |