访问数组元素
如果你使用过其它语言的数组,那对于Perl 可以通过索引值来访问元素的做法不会觉得奇怪。
数组中的元素是由连续整数编了号的,其从0 开始,每增加一个元素,其索引值加一,如:
$fred[0] = “yabba”;
$fred[1]= “dabba”;
$fred[2] = “doo”;
数组名字(本例中:fred)和标量是属于完全不同的命名空间(namespace)。同一程序也可以同时包含叫做$fred 的标量变
量。Perl 将它们当作完全不同的事物来看待,不会混淆◆。(但维护人员可能混淆,所以最好不要将它们以相同的名字来命
名)。
◆语法总是无二义性的;也许有些技巧,但是确定的。
可以在任何◆能够使用标量变量(如$fred)的地方使用数组元素(如$fred[2])。例如,可以使用上一章介绍的方法来获得
数组元素的值,或者改变它。
◆实际上是绝大多数。最明显的例外是foreach 循环中的控制变量(在本章后面将介绍到), 必须是标量变量。还有些例外,如print 和printf
的“indirect object slot”和“indirect filehandle slot”。
print $fred[0];
$fred[2] = “diddley”;
$fred[1] .= “whatsis”
当然,下标可以是任何能返回数值的表达式。如果其值不为整数,则自动将其转换为小于它的最大整数值:
$number = 2.71828;
print $fred[$number-1]; #和print $fred[1]一样
如果下标超出了数组的范围,则其值为undef。这和通常的变量情况是一样的,如果没有值存放在变量中,则其为undef。
$blank = $fred [142_857] #此数组元素未存放值,得到undef $blanc = $mel; #$mel 未存放值(未初始化),得到undef
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。