大佬教程收集整理的这篇文章主要介绍了perl – 使用严格的空列表等同于不使用strict?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在original version of a question中,使用Strict();在程序的顶部.没有变量与我的声明.程序工作我指出,代码不会因为失踪的人而工作,但事实证明我是错误的.
$perl e 'use Strict (); $foo = 1'
这个程序工作.它不会崩溃但显然这是崩溃:
$perl -e 'use Strict; $foo = 1' Global symbol "$foo" requires explicit package name (did you forget to declare "my $foo"?) at -e line 1. Execution of -e aborted due to compilation errors.
我的第一个想法是贬低它,看看是否还有其他事情发生.
$perl -MO=Deparse -e 'use Strict (); $foo = 1' use Strict (); $foo = 1; -e syntax OK
但不是.然后它让我想到,你可以使用严格的“vars”,这只会打开vars thing1.这显然是通过调用import
.
使用Strict与BEGIN {require Strict; Strict->进口; },所以模块的规则也适用于pragmata.如果我使用Foo(),则不会导入任何内容.因此,使用Strict();应该与require Strict相同,只是在运行时,因为没有任何进口.
$perl -e 'require Strict; $foo = 1'
这不会崩溃.但是在运行时你不能打开在编译时设置的东西.
那么这实际上是做什么的呢?当Perl达到我的实际代码时,它可能已经在其他地方遇到了严格的pragma,所以它不会再加载它.它不会导入任何东西.
$perl -e 'print %INC'
哎呀.这没有打印. %INC为空.但是如果我们使用另一个模块,那里有一些东西.
$perl -MData::Dumper -e 'print Dumper \%INC' $VAR1 = { 'warnings.pm' => '/usr/share/perl/5.22/warnings.pm','overload.pm' => '/usr/share/perl/5.22/overload.pm','Carp.pR_50_11845@' => '/usr/share/perl/5.22/Carp.pR_50_11845@','Strict.pm' => '/usr/share/perl/5.22/Strict.pm','overloading.pm' => '/usr/share/perl/5.22/overloading.pm','constant.pm' => '/usr/share/perl/5.22/constant.pm','bytes.pm' => '/usr/share/perl/5.22/bytes.pm','Data/Dumper.pm' => '/usr/lib/x86_64-linux-gnu/perl/5.22/Data/Dumper.pm','XSLoader.pm' => '/usr/share/perl/5.22/XSLoader.pm','Exporter.pm' => '/usr/share/perl/5.22/Exporter.pm','warnings/register.pm' => '/usr/share/perl/5.22/warnings/register.pm' };
如果我们加载Data :: Dumper,在某些时候加载了Strict.但不是在纯粹的例子中.
$perl -e 'use Strict (); print %INC' Strict.pm/usr/share/perl/5.22/Strict.pm
$perl -e 'require Strict; print %INC' Strict.pm/usr/share/perl/5.22/Strict.pm
那么这样呢但是,仍然没有一个严格的事情被启用.
所以问题真的是,使用Strict()相当于根本没有使用Strict语句,还是有其他的事情发生?
1)perldoc strict指严格可以采取的三个不同论点
以上是大佬教程为你收集整理的perl – 使用严格的空列表等同于不使用strict?全部内容,希望文章能够帮你解决perl – 使用严格的空列表等同于不使用strict?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。