Perl模块的实用技巧与游戏玩法
1. 从外部替换不良代码
在构建大型应用程序时,可能会遇到一些模块存在问题。例如,有一个 Parser 模块,当它失败时会调用 exit() 而不是 die() ,这会导致程序直接结束,没有给用户提示或修复问题的机会。
以下是 Parser 模块的相关代码:
package Parser;
sub parse
{
my ($class, $text) = @_;
validate_text( $shift );
bless \$text, $class;
}
sub validate_text
{
my $text = shift;
exit 1 unless $text =~ /^</;
}
1;
通常使用该模块的代码如下:
use Parser;
my $parser = eval { Parser->parse( 'some example text' ) };
die "Bad input to parser: $@\n" if $@;
但由于 exit() 的存在,程序会直接结束。为了解决这个问题,可以在适当的时候用自己的函数覆盖 exit() 关键字:
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



