Carp-Notify
view release on metacpan or search on metacpan
lib/Carp/Notify.pm view on Meta::CPAN
if ($init{'die_quietly'}){
exit;
}
elsif ($init{'death_function'}){
if (ref $init{'death_function'} eq 'CODE'){
$init{'death_function'}->(%init, 'errors' => $errors);
}
else {
# this wants rework, badly
no strict 'vars';
my ($calling_package) = (caller)[0];
my $package = $calling_package . "::";
$package = $1 if $init{'death_function'} =~ s/(.+::)//;
$init{'death_function'} =~ s/^&//;
&{$package . $init{'death_function'}}(%init, 'errors' => $errors);
exit;
};
}
else {
if ($init{'die_to_stdout'}){
print STDERR $init{'death_message'} if $init{'die_everywhere'};
lib/Carp/Notify.pm view on Meta::CPAN
# error does nothing unless you specify the error_function, in that case it's called with the error provided.
sub error {
my ($func, $error) = @_;
if (ref $func eq 'CODE'){
$func->($error);
}
elsif ($func){
# this wants reworked
no strict 'refs';
my ($calling_package) = (caller)[0];
my $package = $calling_package . "::";
$package = $1 if $$func =~ s/(.+::)//;
&{$package . $func}($error);
}
else {
return;
};
};
( run in 0.485 second using v1.01-cache-2.11-cpan-a3c8064c92c )