找回密码
 注册
查看: 2100|回复: 0

perl中特殊的数组索引

[复制链接]
发表于 2011-11-13 10:05:12 | 显示全部楼层 |阅读模式
如果将一个元素存储在数组最后元素的后面的位置,数组会自动增长的。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!)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 21:06 , Processed in 0.019770 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表