在我的项目中,我正在准备从遗留代码到新的,经过适当设计和测试的模块的逐步过程。由于并非每个程序员都密切关注我的工作,因此我想在使用旧代码时发出警告。我也非常希望能够输出有关如何移植旧代码的建议。
我找到了两种方法:
Attribute::Deprecated,这对于函数很好,但如果不推荐使用完整的模块则相当麻烦。此外,除了警告之外,没有其他信息。
Perl::Critic::Policy::Modules::ProhibitEvilModules
用于模块或可能是自定义Perl::Critic
规则,以便在功能或方法级别上进行更精细的弃用。这种方法很好,但是代码本身并不是很明显它已被弃用。
任何其他建议或技巧如何正确和轻松地做到这一点?
答案 0 :(得分:16)
对于方法和函数,您只需使用警告和对首选函数的调用替换函数体。
perl perllexwarn给出了以下示例:
package MyMod::Abc;
sub open {
warnings::warnif("deprecated",
"open is deprecated, use new instead");
new(@_);
}
sub new {
# ...
}
1;
如果您弃用整个模块,请将警告放在模块中的BEGIN
块中。
您也可以在import
方法中添加警告(例如Win32::GUI::import):这完全取决于您想要做什么。