在双引号内可以使用@直接输出数组
@rocks=qw(flinstone slate rubblke); print "quarrz @rocks limtstone\n"; #print "fred@rocks.com.cn";#如果我们真的想要输出@21136.com.cn,那么我们需要将@转义,即\@;或者直接使用单引号 @fred=qw(hello dolly); $y=2; $x="This is $fred[1]`s place\n"; print $x; $x="this is $fred[$y-2]`s place\n"; 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);
@sorted=sort(@number);
foreach(@sorted)
{
print $_;
print " ";
}
输出的结果是100 101 102 97 98 99
为什么会这样呢?因为根据默认的排序规则,排在首位的,先进行比较,首位的1自然要比9要小,所以,100,就排在了99的前面