加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么使用警告;使用strict;不是默认在Perl?

发布时间:2020-12-15 21:25:43 所属栏目:大数据 来源:网络整理
导读:我想知道为什么 use warnings;use strict; 在Perl中不是默认值。它们是每个脚本都需要的。如果有人(为了很好的原因)需要禁用它们,他们应该使用没有严格和/或应该使用一些命令行参数(一行)。 是否有太多不良写的CPAN模块(使用“不好”意思没有使用严格)?还
我想知道为什么
use warnings;
use strict;

在Perl中不是默认值。它们是每个脚本都需要的。如果有人(为了很好的原因)需要禁用它们,他们应该使用没有严格和/或应该使用一些命令行参数(一行)。

是否有太多不良写的CPAN模块(使用“不好”意思没有使用严格)?还是因为这可以打破很多已经在生产中的代码?我相信有一个理由,我想知道它。

在5.14 IO :: File根据需要自动加载,不可能做这样与这些基本的pragmas类似的东西?

解决方法

这是为了向后兼容。 Perl 4没有严格的,并且很可能仍然有脚本原来为Perl 4编写,仍然与Perl 5正常工作。严格自动将打破这些脚本。单线程的情况甚至更糟,其中许多不需要声明变量。默认情况下,使一个线程严格将破坏可能数百万的shell脚本和Makefile在那里。

它不能自动加载,因为它添加了限制,而不是功能。当在文件句柄上调用方法时,加载IO :: File是一件事。但激活严格,除非代码做了严格禁止的事情是无意义的。

如果脚本指定了最低版本5.11.0或更高版本(例如使用5.012),则为strict is turned on automatically.这不会启用警告,但也许会在将来的版本中添加。此外,如果您在Perl中进行OO编程,您应该知道使用Moose会自动打开该类中的严格和警告。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读