PERL数组的遍历
???? 在双引号内可以使用@直接输出数组 @rocks=qw(flinstone slate rubblke); print "quarrz @rocks limtstonen"; #print "fred@rocks.com.cn";#如果我们真的想要输出@21136.com.cn,那么我们需要将@转义,即@;或者直接使用单引号 @fred=qw(hello dolly); $y=2; $x="This is $fred[1]`s placen"; print $x; $x="this is $fred[$y-2]`s placen"; print $x; print @fred; print "n"; $rock="ads"; foreach $rock(@fred) { $rock.="n" ; } print @fred; print $rock;foreach可以遍历整个数组,但是不同的是 在每次循环迭代时,控制变量,比如$rock不是列表元素的复制品,而他实际上就是列表元素,也就是说如果在循环中修改了控制变量,实际上就是修改了列表,然而当,循环结束 后控制变量仍然是循环之前的数据,如果未被赋值过那它就还是undef PERL中的默认变量"$_" 参考代码: @tmp=qw(abc bcd efg); foreach(@tmp) { ??? print $_; ?? print "n"; } 默认变量,即当未告知PERL使用哪一个变量或者数值的时候会自动使用的变量,不需要程序员自行声明的变量 reverse操作符,即将列表中的值进行反向操作,需要注意的是该操作并不会改变传递进来的参数,因此如果没有被赋值的列表,则该操作不再具有意义 sort操作符读取列表中字符的值,并且根据字符编码的升序进行排列。 参考代码: @tmp=qw(a b c d); @sorted=sort(@tmp); print @sorted; 一个例外的实例 @number=qw(97 98 99 100 101 102); 为什么会这样呢?因为根据默认的排序规则,排在首位的,先进行比较,首位的1自然要比9要小,所以,100,就排在了99的前面 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |