2014-09-22 23 views
1

定義變量與* vs a $有什麼區別?例如:

local $var; 
local *var; 
+3

http://perldoc.perl.org/perldata.html#Typeglobs-and-Filehandles – toolic 2014-09-22 18:01:36

+2

此外,你幾乎可以肯定是使用'my'而不是'local'。 – AKHolland 2014-09-22 18:10:05

+2

需要注意的是,typeglobs是特定於包範圍變量的,並且用'my'聲明的變量不具有關聯的typeglob或符號表項。與此相關的文件非常密集,作爲參考材料比介紹材料更有用。我建議布魯斯·格雷的[Why'my'?](http://www.youtube.com/watch?v=Ton-5tvDQiE)談話,因爲它幫助我將包變量理解爲Perl的歷史人造物和特定情況其中它們繼續有用(例如進口)。 – Slade 2014-09-22 18:31:38

回答

6

最初的字符被稱爲sigil,並且表示標識符代表什麼樣的值。你會知道他們中的大部分。下面列出了

  • 美元$

  • 在標誌@陣列

  • 百分比%哈希

  • Ampers和&代碼

  • 的Asterisk *類型團

你不太可能所遇到的最後兩個最近,因爲調用子程序時&一直沒有必要自從Perl 5.0發佈以來。而typeglobs是一個包含所有其他類型的特殊類型,並且更少使用。

我在考慮進入所有這一切需要多深,但會留下我現在的答案。根據出現的評論,我可能寫更多。