Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re^3: Let a module call a sub of the caller

by moritz (Cardinal)
on Sep 07, 2012 at 10:02 UTC ( #992270=note: print w/replies, xml ) Need Help??

in reply to Re^2: Let a module call a sub of the caller
in thread Let a module call a sub of the caller

I am not that familiar with the processing phases BEGIN,INIT,END, that's why I asked. Is there a way to call the method at the END of execution of the caller?

END time is the same for all, so yes, that works:

# file package CallMe; use 5.010; use strict; use warnings; my @to_call; sub import { my ($self, @routines) = @_; my $call_package = (caller(1))[0]; push @to_call, $call_package. "::$_" for @routines; } END { no strict 'refs'; $_->() for @to_call; } 1;

And then in your script:

use 5.010; use lib '.'; use CallMe 'foo'; sub foo { say 42 } say 'in mainline';


in mainline 42

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (8)
As of 2016-10-21 14:56 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (289 votes). Check out past polls.