可能重复:
为什么 Perl 变量需要以 $、%、@ 开头?
没有这个或类似的东西,其他脚本语言似乎相处得很好。
我想这与内存分配和帮助解释器以加快速度有关,但我找不到任何具体的内容。$scalar 可能会被放入堆栈,@array 放入堆和 %hash?也进堆?那么子程序呢?
有人可以帮我解决这个问题或向我指出一些文档吗?我仍在努力掌握一些基础知识并了解一切如何在幕后工作......
可能重复:
为什么 Perl 变量需要以 $、%、@ 开头?
没有这个或类似的东西,其他脚本语言似乎相处得很好。
我想这与内存分配和帮助解释器以加快速度有关,但我找不到任何具体的内容。$scalar 可能会被放入堆栈,@array 放入堆和 %hash?也进堆?那么子程序呢?
有人可以帮我解决这个问题或向我指出一些文档吗?我仍在努力掌握一些基础知识并了解一切如何在幕后工作......
因为它更容易阅读。
由于 sigaldry,您知道哪些标识符是名词,以及它们是单数还是复数。这与英语中我们有单数和复数限定词和一致性的原因相同,就像在这个物种是与这些物种是一样的。很高兴知道哪个是哪个。
Perl 将与名称相关的所有数据存储在单个符号表条目中。存储在那里的结构称为typeglob。$foo
、@foo
、%foo
和(子例程引用) 的值&foo
都存储在 "foo" 的 typeglob 中。表示整个 typeglob *foo
(其中*
表示“所有符号”)。所有这些都在Perl 文档的 perldata 部分进行了解释。