如何处理Global symbol * requires explicit package name编译错误,以及use strict用法
編寫下面的簡單示例來說明如何處理如下類型的錯誤提示:
?
Global symbol "$c" requires explicit package name at *.pl line 8.
Execution of *.pl aborted due to compilation errors.
?
#############Code Starts###############
#!/usr/bin/perl -w
use strict;
?
$a=0377;
?
$b=0x12;
?
$c=$a+$b; ? #key?point;
?
print $c,"\n";
?
#############Code Ends###############
?
這時候直接運行是編譯不通的,會出現開頭說道的那種錯誤。
關鍵在于有$c的那2行:變量的作用域問題和use strict的使用。
我們使用my來聲明$c,即可改正問題:
把"
?
$c=$a+$b;" 改為"my?
?
$c=$a+$b;",再次運行,成功!
?
?
?
?
?
?
?
use strict的用法:
?
?
1.什么場合要用 use strict
?
?
當你的程序有一定的行數時,尤其是在一頁放不下時,或者是你找不到發生錯誤的原因時。
?
?
?
?
?
?
2.為什么要用 use strict?
?
?
?
?
?
?
?
?
?
?
?
?
眾多的原因之一是幫你尋找因為錯誤拼寫造成的錯誤。比如錯誤使用了'$recieve_date' 變量,但實際上你在程序中已聲明的是 '$receive_date' 變量,這個錯誤就很難發現。同樣,use strict 迫使你把變量的范圍縮到最小,使你不必擔心同名變量在程序的其它部份發生不良作用。(盡管這是 my 的功能,但是如果你使用 use strict 的話,它會強迫你用 my 聲明變量,來達到上述目的)。
?
?
3.用use strict麻煩嗎?
?
?
?
?
?
不麻煩,只要在你的腳本的開始加上11個字符而已!(use strict;), 另外在整個程序中用my 聲明變量。
?
?
?
?
?
?
?
?
在你的腳本的開頭 '#!/usr/local/bin/perl' 后面加上這句就行:
?
?
?
?
?
use strict;
?
?
?
4.程序出錯了,該怎么辦??
常見的錯誤信息一般如下:(前面已經解決過了)
?
?
Global symbol "$c" requires explicit package name at *.pl line 8.
轉載于:https://www.cnblogs.com/tibetanmastiff/archive/2011/12/20/2294374.html
總結
以上是生活随笔為你收集整理的如何处理Global symbol * requires explicit package name编译错误,以及use strict用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC3 上传文件
- 下一篇: 员工薪酬管理设计方案