my $return = my::module::exit_routine();
sub reverse_modifier {
# I modify default behaviour of the exit routine if I get passed - some times I am not needed.
}
my %modifier = ( reverse_modifier => \&reverse_modifier );
my $return = my::module::exit_routine(\%modifier);
####
my %revmod = eval { %{ $_[0] } }
####
my $log = LogSimple->new(_exit => my::module::exit_routine(\%modifier) );
$log->err("An error occured, _exit will happen before I exit but now I want to force exit_routine to also use the \%modifier as well")
####
Package LogSimple
...
sub wlog {
my ($self,$MESSAGE,$ERR,$LEVEL,$LOGLEVEL) = @_;
my $TIME = datetime();
my $exit_ref;
if ( $LOGLEVEL <= $self->{_loglevel} ) {
open (LOG, ">>$self->{_log}") || warn "Unable to open log file $self->{_log}: $!";
print LOG "$LEVEL: $TIME : $self->{_script} : $MESSAGE\n";
print "$LEVEL: $TIME : $self->{_script} : $MESSAGE\n" if ( $self->{_verbosity} > 0 );
close (LOG);
}
if ( $ERR ) {
if ( exists $self->{_exit} ) {
use Data::Dumper;
print Dumper $self->{_exit};
$exit_ref = $self->{_exit};
$exit_ref->($self); # LINE 122
if ( $LOGLEVEL <= $self->{_loglevel} ) {
open (LOG, ">>$self->{_log}") || warn "Unable to open log file $self->{_log}: $!";
print LOG "$LEVEL: $TIME : $self->{_script} : $MESSAGE\n";
print "$LEVEL: $TIME : $self->{_script} : $MESSAGE\n" if ( $self->{_verbosity} > 0 );
close (LOG);
};
}
exit $ERR
}
}