我知道如何覆盖内置函数,perl
并且我已经覆盖die
warn
say
并且不能被覆盖,我已经将它绑定到我的日志框架的句柄print
。printf
覆盖示例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;
}
}
现在有没有办法croak cluck confess carp
从carp
模块中覆盖Perl
?