全局符號需要顯式包名?爲什麼會發生這種情況,以及可能導致此錯誤的各種情況是什麼?全局符號需要顯式包名
24
A
回答
22
看一看perldiag:
全球符號 「%s」 需要明確的包名
(F)你說: 「使用嚴格」 或 「使用嚴格瓦爾」這表明所有變量必須是詞法範圍的(使用「my」或「state」),事先使用「our」聲明,或明確限定全局變量所在的包(使用「::」)。
5
爲了具體說明是什麼導致它在你的代碼中,你需要發佈你的代碼。
的錯誤是輸出和你的腳本停止,因爲你有use strict
或它的衍生物。 錯誤發生因爲您的程序正在調用超出範圍的變量。
您可能在子程序/函數中使用了my或local,但正試圖在另一個程序或函數調用之外使用它。
sub foo{ my $bar=0; our ($soap) = 1; } foo(); print $bar , "\n"; # does not work w/ strict -- bar is only in the scope of the function, not globally defined print $main::bar , "\n"; # will run, but won't be populated print $soap , "\n"; # does not work w/ strict -- the package isn't defined print $main::soap , "\n"; # will run and work as intended because of our
-1
23
當以前的陳述未完成時也可能發生。
use strict;
sub test;
test()
# some comment
my $x;
的Perl現在抱怨與以下錯誤消息:
my "
Global symbol "$x" requires explicit package name
的錯誤不是在宣告 「我的」,但在在test()
缺少分號(;
)。
+2
謝謝!我正在撕掉我的頭髮。 – Zack 2016-09-01 23:52:35
0
使用不帶use feature "state"
或use v5.10
的狀態變量,除非關鍵字被寫爲CORE :: state。
0
其實兩者,如果你使用use strict;
和地方你在聲明的結尾錯過;
,那麼下面的語句(他們有完善的語法)可能會提高全局符號需要明確包名以及。
相關問題
- 1. 全局符號需要顯式包裝
- 2. 錯誤 - '全局符號需要顯式包名'
- 3. Perl錯誤全局符號需要顯式包名
- 4. 全局符號需要顯式包名perl
- 5. 「全局符號需要顯式包名」的說明
- 6. 即使聲明瞭變量,「全局符號也需要顯式包名」
- 7. Perl - 全局變量需要顯式包
- 8. 錯誤 - 全局符號需要明確的包名
- 9. 全局符號「@str」需要明確的包名
- 10. 的Perl - 全局符號需要明確包名
- 11. 全局符號「$ queryDelete」需要明確的包名
- 12. 全局符號需要在perl腳本包名稱錯誤
- 13. 的Perl:全局符號需要明確包名稱
- 14. Perl:全局符號「%s」需要明確的包名稱
- 15. 全局符號「%properties」需要明確的包名
- 16. 全局符號「%CustomerCompanyName」需要明確的包名
- 17. 全局符號「$地」需要明確的包名
- 18. Perl的全局符號需要明確包名
- 19. 全局符號「%formsequence」需要在37行
- 20. 爲什麼Perl說全局符號「SYMBOL」需要在PROGRAM.pl行X處顯式包名?
- 21. 爲什麼我的Perl腳本抱怨「全局符號」$ random_name「需要顯式包名」?
- 22. 全球符號「%s」需要明確的包名
- 23. 全球符號需要包名稱,當使用「我的」在Sub
- 24. 權限是否需要顯式包名?
- 25. Perl腳本返回錯誤全局符號需要明確的包
- 26. 修復npm全局包符號鏈接
- 27. 全局符號和明確包名難以解決
- 28. 在子例程中修改哈希的Perl - 全局符號需要明確的包名稱
- 29. 從Perl中刪除鍵/值對結果全局符號需要明確的包名錯誤
- 30. 文件打開錯誤 - 全局符號「$ infilename」需要明確的軟件包名稱
示例Perl代碼?請參閱http://stackoverflow.com/q/4257179/10468或在perl模塊上搜索問題。另請參見(異地)http://www.sitepoint.com/forums/showthread.php?501379-Perl-require-and-variables – DarenW 2012-04-12 17:31:42