【发布时间】:2011-10-19 06:25:11
【问题描述】:
没有这个或类似的东西,其他脚本语言似乎相处得很好。
我想这与内存分配和帮助解释器以加快速度有关,但我找不到任何具体的内容。 $scalar 可能会被放入堆栈,@array 放入堆和 %hash?也进堆?那么 ?subroutine 呢?
有人可以帮我解决这个问题或向我指出一些文档吗?我仍在努力掌握一些基础知识并了解一切如何在幕后工作......
【问题讨论】:
没有这个或类似的东西,其他脚本语言似乎相处得很好。
我想这与内存分配和帮助解释器以加快速度有关,但我找不到任何具体的内容。 $scalar 可能会被放入堆栈,@array 放入堆和 %hash?也进堆?那么 ?subroutine 呢?
有人可以帮我解决这个问题或向我指出一些文档吗?我仍在努力掌握一些基础知识并了解一切如何在幕后工作......
【问题讨论】:
因为它更容易阅读。
您知道哪些标识符是名词,以及它们是单数还是复数,因为 sigaldry。这与英语中我们有单数和复数限定词和一致的原因相同,如 this species is vs these species are。很高兴知道哪个是哪个。
【讨论】:
use strict 下是禁止的。为什么外壳有印记?
@abc 和 $abc 之间的区分,这是 Perl 中的两个不同变量。如果没有符号,变量插值将需要一些其他元字符,取消引用将需要其他元字符,并且 abc 将不能既是字符串又是完全独立的、独立的数组、散列和函数。所以回答你的问题,是的。编译器也使用印记。
Perl 将与名称相关的所有数据存储在单个符号表条目中。存储在那里的结构称为 typeglob。 $foo、@foo、%foo 和 &foo(子例程引用)的值都存储在“foo”的 typeglob 中。整个 typeglob 用*foo 表示(其中* 表示“所有符号”)。所有这些都在perldata section of the Perl documentation 中进行了解释。
【讨论】:
my 变量)使用词法填充,它们深埋在 Perl 内部。 perlguts