perl:在哪里可以找到由*VAR =\0创建的只读变量的深层知识

vts*_*vts 3 perl

我学会了一个perl语句,如:

*VAR = \0;
Run Code Online (Sandbox Code Playgroud)

$VAR在回答/sf/answers/2455826831/中创建一个只读,我试图找到更多的文档,以了解为什么$VAR在这种情况下是只读的,但没有运气,有人可以帮助解释或者指出一些关于这个主题的文件?

ike*_*ami 5

*VAR 是以下符号表条目:

  • $VAR
  • @VAR
  • %VAR
  • &VAR

(它还有一个用于文件句柄,目录句柄,格式等的插槽.)

因为它们存储了一堆不同类型的变量,所以符号表条目被称为"typeglobs"或简称为"globs".

将对a的引用分配给glob会将相应类型的槽设置为引用的变量.这意味着将标量的引用分配给*VAR集合*VAR{SCALAR},返回的值$VAR.由于您正在传递对常量的引用,因此$VAR返回该常量.


*VAR = *OTHER;另一方面,使左侧名称成为右侧名称的别名.

  • 它$VAR相当于$OTHER.
  • 它@VAR相当于@OTHER.
  • 它%VAR相当于%OTHER.
  • 它&VAR相当于&OTHER.
  • 等等

*VAR = 0;被视为*VAR = *{"0"};手段*VAR = *0;.这意味着,除其他外,$VAR将返回当前脚本的名称(如此$0).


参考:Typeglobs和Filehandles