1. 程式人生 > >Global symbol "" requires explicit package name at ""的perl程式編譯出錯的解決辦法

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 可以找到的很多簡單錯誤。

比如錯誤使用了'recievedaterecievedate′變數,但實際上你在程式中已宣告的是′receive_date' 變數,這個錯誤就很難發現。同樣,use strict 迫使你把變數的範圍縮到最小,使你不必擔心同名變數在程式的其它部份發生不良作用。(儘管這是 my 的功能,但是如果你使用 use strict 的話,它會強迫你用 my 宣告變數,來達到上述目的)。

用 use strict 麻煩嗎?

不麻煩,只要在你的指令碼的開始加上11個字元而已!(use strict;)

故還是推薦使用use strict; (perl5.6版本以後)。


轉載地址:https://www.cnblogs.com/zeushuang/archive/2012/08/21/2649325.html