Perl变量名前面的*是什么意思



下面的Perl语句是什么意思?

*INPUT_DATA                    = 0;

我查看了一些Perl文档网站,也喜欢https://perldoc.perl.org/variables,但我找不到类似的例子。

简而言之,*表示";typeglob";,其是保持给定名称的所有全局变量的值的内部类型。它有时仍然用于旧代码中的文件句柄或创建别名。

有关typeglobs的解释,请参阅perldata,也可以参阅页面末尾推荐的链接,即perlvar、perlref、perlsub和perlmod。

它创建了一个名为$INPUT_DATA的只读变量,值为0。换句话说,

*INPUT_DATA = ;

基本上等同于

use Readonly;

Readonly::Scalar $INPUT_DATA => 0;

这是通过操纵符号表来完成的。

*表示一个glob,也就是typeglob。它基本上是一个C结构,包含每种类型的变量之一(标量、数组、代码、glob、文件句柄、目录句柄、格式等(。符号表是一棵地球仪树。

最新更新