NAME
Sub::Fallback - Fall back to subs in stack
SYNOPSIS
use Sub::Fallback qw(fallback);
# do NOT use this code
init();
sub init {
$i = 0;
increase();
}
sub increase {
print ++$i,"\n";
loop();
}
sub loop {
fallback(0) if $i == 20; # falls back to init()
fallback(1,1); # falls back to increase() in 1 sec
}
FUNCTIONS
fallback
Falls back to previously executed subs in stack.
fallback( stack frame, [sec] );
Unlike perl's caller
, fallback()
takes an absolute integer as level indicator. 0 does always refer to the first stack frame. fallback(0)
will thus fall back to the first sub within the stack. A sleep interval (sec) before falling back may be provided.
EXPORT
fallback()
is exportable.
CAVEATS
Speed may become an issue since a counter has to be incremented to keep count of stack frames.