用* vs $定义的Perl变量

时间:2014-09-22 17:56:51

标签: perl variables

使用*和$定义变量之间的区别是什么?例如:

local $var;
local *var;

2 个答案:

答案 0 :(得分:7)

$var是一个标量。 *var是一个typeglob。 http://perldoc.perl.org/perldata.html#Typeglobs-and-Filehandles

从严格意义上说,这不是变数。你通常不应该使用它。

答案 1 :(得分:7)

初始字符称为sigil,并说明标识符代表什么类型的值。你会了解他们中的大部分。这是一个清单

  • $标量

  • 签名@数组

  • 百分比%哈希

  • &符号&代码

  • 星号* typeglob

最近你不太可能遇到最后两个,因为自从Perl 5.0发布以来调用子程序时没有必要&。而typeglobs是一种特殊类型,包含所有其他类型,并且更少使用。

我正在考虑进一步深入研究所有这些问题,但现在仍会留下我的答案。我可能会根据出现的评论写更多内容。