最近編寫一個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版本以后)。