用*vs $定义的Perl变量

eri*_*ar7 2 variables perl

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

local $var;
local *var;
Run Code Online (Sandbox Code Playgroud)

Sob*_*que 7

$var是一个标量.*var是一个类型的小球.http://perldoc.perl.org/perldata.html#Typeglobs-and-Filehandles

从严格意义上讲,这不是一个变数.你通常不应该使用它.


Bor*_*din 7

初始字符称为sigil,并表示标识符表示的值.你会了解他们中的大部分.这是一个清单

  • 美元$是一个量值

  • 在sign处@是一个数组

  • 百分比%哈希

  • Ampersand &是一个代码

  • 星号*是一种类型

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

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