最近编写一个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版本以后)。