Perl   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了perl – 我应该使用common :: sense还是只是坚持使用strict和`use warnings?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近从CPAN安装了一个模块,并注意到其中的一个依赖关系是 common::sense,这是一个模块,用于启用所有你想要的警告,而没有一个.从模块的概要:
use common::sense;

# supposed to be the same,with much lower memory usage,as:
#
# use Strict qw(vars subs);
# use feature qw(say state switch);
# no warnings;
# use warnings qw(FATAL closed threads internal debugging pack substr malloc
#                 unopened portable prototype inplace io pipe unpack regexp
#                 deprecated exiTing glob digit printf utf8 layer
#                 reserved parenthesis taint closure semicolon);
# no warnings qw(exec newlinE);

除了undef警告,有时候是麻烦,我通常发现标准警告是好的.是否值得切换到common :: sense而不是我的正常使用严格;使用警告@H_262_5@

解决方法

然我喜欢减少锅炉代码的想法,但我深深怀疑Modern :: Perl和common :: sense这样的工具.

我这样的模块的问题是它们捆绑了一组行为,并隐藏了具有可变意义的行为glib名称.@H_262_5@

例如,Modern :: Perl今天包括启用一些perl 5.10功能并使用严格和警告.但是当Perl 5.12或5.14或5.24出现的时候会出现什么新的好东西呢,社区发现我们需要在各地使用frobnitz pragma?将现代:: Perl提供一套一致的行为,否则它将保持“现代”.如果MP随着时间的推移,它将破坏不符合编译器要求的锁定步骤的现有系统.它增加额外的兼容性测试升级.至少这是我对MP的反应.我会第一个承认,色彩比我更聪明10倍,程序员更好 – 但我仍然不同意他对这个问题的判断.@H_262_5@

common :: sense也有一个名字问题.谁有常识的概念?会随着时间的推移而改变吗?@H_262_5@

我喜欢使用一个可以轻松创建自己的标准模块的模块,甚至为特定任务创建一组相关的模块/编译指示(如日期时间操作,数据库交互,HTML解析等).@H_262_5@

我喜欢Toolkit的想法,但它有几个原因:它使用源过滤器,宏系统过于复杂和脆弱.我非常尊重Damian Conway,他制作出辉煌的代码,但有时候他有点太过分了(至少在生产中,实验是好的).@H_262_5@

我没有足够的时间打字使用严格;使用警告;感觉需要创建我自己的标准导入模块.如果我觉得强烈需要自动加载一组模块/编译指示,那么类似于Toolkit的类似于创建标准功能组的工具将是理想的:@H_262_5@

use My::Tools qw( standard datetiR_88_11845@e sqlite );

要么@H_262_5@

use My::Tools;
use My::Tools::datetiR_88_11845@e;
use My::Tools::sqlite;

工具包非常接近我的理想.它的致命缺陷是一个很大的障碍.@H_262_5@

关于拼写选择是否有意义,那就是品味的问题.我宁愿在我需要做一些需要它的东西的块中使用偶尔没有严格的“foo”或者没有警告“bar”,而不是关闭整个文件的检查.另外,IMO,内存消耗是一个红色的鲱鱼.因人而异.@H_262_5@

更新@H_262_5@

看起来有这么多(多少?)不同的模块在CPAN上浮动.@H_262_5@

>有latest,不再是最新的.演示部分命名问题.
>另外,uni::perl增加了unicode部分组合.
> ToolSet提供了Toolkit的一些功能,但没有源代码过滤器.
>我将在这里加入Moose,因为它会自动向呼叫包添加严格和警告.
>最后Acme::Very::Modern::Perl@H_262_5@

这些模块的扩散和重叠需求的潜力又增加了另一个问题.@H_262_5@

如果你写的代码如下:@H_262_5@

use Moose;
use common::sense;

什么选项可以启用哪些pragmas?@H_262_5@

大佬总结

以上是大佬教程为你收集整理的perl – 我应该使用common :: sense还是只是坚持使用strict和`use warnings?全部内容,希望文章能够帮你解决perl – 我应该使用common :: sense还是只是坚持使用strict和`use warnings?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。