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