下面的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、文件句柄、目录句柄、格式等(。符号表是一棵地球仪树。