英语 - 为丑陋的标点变量使用好听的英语(或 awk)名称
use English;
use English qw( -no_match_vars ) ; # Avoids regex performance
# penalty in perl 5.18 and
# earlier
...
if ($ERRNO =~ /denied/) { ... }
此模块为内置变量提供别名,似乎没有人喜欢阅读这些变量的名称。即使仅仅访问这些变量也会触发副作用的变量(如 $0)仍会受到影响。
对于具有awk版本的变量,会提供长短英语替代名称。例如,如果使用英语模块,则可以将$/
变量称为 $RS 或 $INPUT_RECORD_SEPARATOR。
请参阅perlvar以获取这些变量的完整列表。
注意:这已在 perl 5.20 中修复。不再提及这三个变量会产生速度差异。如果你的代码要在 perl 5.18 或更早版本上运行,则此部分仍然适用。
由于不幸的实现细节,此模块可能会对正则表达式造成相当大的低效率。如果性能对你的应用程序很重要,并且不需要 $PREMATCH、$MATCH 或 $POSTMATCH,请尝试执行
use English qw( -no_match_vars ) ;
. 在模块中执行此操作尤其重要,以避免对使用它们的应用程序进行处罚。