Global symbol "" requires explicit package name at ""的perl程序编译出错的解决办法

最近编写一个perl脚本时候,编译出现了Global symbol "" requires explicit package name at ""的错误,后发现是由于使用use strict;造成,那么问题解决方法应该有两个:

一,使用use strict; ,修改其他代码,如下:

1,首先,检查你是不是用了use strict;

2,如果用了use strict; 则,请在每个变量前加my将其声明为本地变量;

3,进行完前两步后,重新编译,此时问题解决。


二,去掉use strict;语法的严格检查,重新编译,问题应该解决了。

题外话:

何时使用use strict;?

当你的程序有一定的行数时,尤其是在一页放不下时,或者是你找不到发生错误的原因时。

为什么要用 use strict?

众多的原因之最重要的原因是帮你寻找因为错误拼写造成的错误。

因为你会发现使用 use strict 之后,我们就不必花太多的时间自己去查找 use strict 可以找到的很多简单错误。

比如错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。同样,use strict 迫使你把变量的范围缩到最小,使你不必担心同名变量在程序的其它部份发生不良作用。(尽管这是 my 的功能,但是如果你使用 use strict 的话,它会强迫你用 my 声明变量,来达到上述目的)。

用 use strict 麻烦吗?

不麻烦,只要在你的脚本的开始加上11个字符而已!(use strict;)

故还是推荐使用use strict; (perl5.6版本以后)。

原文地址:https://www.cnblogs.com/zeushuang/p/2649325.html