如何将Perl代码标记为已弃用?

在我的项目中,我正在准备从遗留代码到新的,经过适当设计和测试的模块的逐步过程.由于不是每个程序员都密切关注我的工作,因此我想在使用旧代码时发出警告.我也非常希望能够输出有关如何移植旧代码的建议.

我发现了两种方法

> Attribute::Deprecated,这对功能来说很好,但如果不推荐使用完整的模块则相当麻烦.此外,除了警告之外,没有其他信息.
> Perl :: Critic :: Policy :: Modules :: ProhibitEvilModules用于模块或者可能是自定义Perl :: Critic规则,用于在函数方法级别上更精细地弃用.这种方法很好,但是代码本身并没有立即明白它已经被弃用了.

任何其他建议或技巧如何正确和容易地做到这一点?

解决方法

对于方法函数,您只需使用警告和对首选函数调用来替换函数体.

perl perllexwarn给出了以下示例:

package MyMod::Abc;

 sub open {
     warnings::warnif("deprecated","open is deprecated,use new instead");
     new(@_);
 }

 sub new {
     # ...
 }
 1;

如果要弃用整个模块,请将警告放在模块的BEGIN块中.

您也可以在导入方法添加警告(例如Win32::GUI::import):这完全取决于您想要做什么.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...