#!/local/new_freeware/perl5.004/perl -w #!/local/disk3/local/bin/perl -w #!/usr/local/bin/perl -w use Hook::PrePostCall; use strict; sub try { print "in try: @_\n"; @_; } print "= No added routines\n"; my $test1 = Hook::PrePostCall->new('try'); print try(10), "\n"; print "= add a pre routine\n"; $test1->pre(sub { print "a 'pre' routine @_\n"; @_;}); print try(10), "\n"; print "= add a post routine\n"; $test1->post(sub { print "a 'post' routine @_\n"; @_;}); print try(10), "\n"; print "= restore initial definition\n"; $test1->restore(); print try(10), "\n"; print "\n"; print "= Change the post routine\n"; my $test2 = Hook::PrePostCall->new( 'try', undef, sub { print STDERR "A new post: @_\n"; @_; } ); print try(10), "\n"; print "= add another level\n"; my $test3 = Hook::PrePostCall->new( 'try', sub { print STDERR "in pre: @_\n"; @_; }, sub { print STDERR "Another post: @_\n"; @_; } ); print try(10), "\n";