这里的含义是什么意思?

时间:2011-08-11 06:28:41

标签: perl

$self->[UTF8] = $conf->{utf8};

之前从未见过这样的代码。

[]在这里意味着什么?

2 个答案:

答案 0 :(得分:11)

在这种情况下,对象$self被实现为有福的数组引用,而不是使用有福的哈希引用的更常见的方法。语法$foo->[42]访问数组引用中的单个元素。据推测,UTF8是一个常量,它将数字索引返回到数组中。

当人们确信(通常是错误的)对象属性的哈希查找导致显着的开销并试图过早地优化他们的代码时,你会看到这个习语。

答案 1 :(得分:3)

[]表示$self是对列表/数组的引用(假设代码有效)。但是,这看起来有点奇怪,因为列表索引应该是数字。