【发布时间】:2015-05-25 21:32:56
【问题描述】:
我的问题是,希望很简单。
在 Perl 中,如何创建一个全局范围的子例程,此后所有对象都可以访问?
sub throw
{
die(shift);
}
似乎在全局范围内工作,但之后无法访问包。我想避免在我的应用程序堆栈中的每个对象中做某种声明。
侧面解决方案:如何为像 die 这样的全局关键字创建别名?
请注意:我真的不在乎这样做是否被认为是最佳做法。尽管它们在 Perl 中执行相同的功能,但 die 不是 throw,throw 不是 die。以下语法不遵循我试图遵循的 OOP 原则:
die new Exception($message);
尽管逻辑上相似,但出于抛出异常的目的,我更喜欢以下语法:
throw new Exception($message);
非常感谢 stackoverflow 社区!
【问题讨论】:
-
请不要写
new Classname。在 Perl 中,new只是方法的名称,而不是关键字,它会混淆解释器。相反,请使用Exception->new($message)。