微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

3 Perl - 特殊的数组索引

特殊的数组索引
如果将一个元素存储在数组最后元素的后面的位置,数组会自动增长的。Perl 没有长度的限制,只要你有足够的内存。如
果Perl 需要创建元素,则其值为undef。


$rocks[0] = ‘bedrock’; #一个元素
$rocks[1] = ‘slate’; #又一个
$rocks[2] = ‘lava’; #又一个
$rocks[3] = ‘crushed rock’;#又一个
$rocks[99] = ‘schist’; #现在有95 个undef 元素


有时需要知道数组最后一个元素的索引。刚才使用的rocks 数组,其最后一个元素的索引为$#rocks ◆。这和数组中元素的
个数是不同的,因为数组中包含元素0。(换句话说,最后一个元素的索引值要比其实际包含的元素个数少一,译者注)。
◆这种糟糕的语法来源于C shell。庆幸的是,在实际的代码中并不常见。


$end = $#rocks; #99,最后一个元素的索引
$number_of_rocks = $end + 1; #正确,但有更好的方法
$rocks[$#rocks] = ‘hard rock’; #the last rock


由于经常将$#name 的值作为索引,像上面例子那样,因此,Larry 提供了一种简便方法:数组的负数索引值从最后一个
素开始。但不要认为这些索引是循环的。如果数组有3 元素,那有效的负数索引值是-1(最后一个元素),-2(中间的元素),
-3(第一个元素)。实际上,几乎没有人使用除了-1

之外的其它的负数索引值。


$rocks[-1] = ‘hard rock’; #完成上例中的一种更简单的方法 $dead_rock = ‘rocks[-100]’; #得到‘bedrock’,第0 个元素 $rocks[-200] = ‘crystal’; #严重错误(Fatal error!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐