I know how to override in built functions in perl
and I have overridden die
warn
say
and since print
and printf
can't be overridden I have tied it to a handle for my logging framework.
Example of overriding warn
:
BEGIN{ *CORE::GLOBAL::warn = sub {
my ($package, $filename, $line, $subroutine) = caller;
untie *STDERR;
my $message;
foreach my $arg (@_) {
$message = $message.$arg;
}
print STDERR $message;
tie *STDERR, __PACKAGE__, (*STDERR);
logmessage("warn",$message,$filename, $line);
return;
}
}
Now is there way I can override croak cluck confess carp
from carp
module in Perl
?