使用*和$定义变量之间的区别是什么?例如:
local $var;
local *var;
答案 0 :(得分:7)
$var
是一个标量。 *var
是一个typeglob。 http://perldoc.perl.org/perldata.html#Typeglobs-and-Filehandles
从严格意义上说,这不是变数。你通常不应该使用它。
答案 1 :(得分:7)
初始字符称为sigil,并说明标识符代表什么类型的值。你会了解他们中的大部分。这是一个清单
元$
是标量值
签名@
是数组值
百分比%
是哈希值
&符号&
是代码值
星号*
是 typeglob
最近你不太可能遇到最后两个,因为自从Perl 5.0发布以来调用子程序时没有必要&
。而typeglobs是一种特殊类型,包含所有其他类型,并且更少使用。
我正在考虑进一步深入研究所有这些问题,但现在仍会留下我的答案。我可能会根据出现的评论写更多内容。