PERL中的数组和列表
PERL数组中所有的元素都是有初始值的,即为undef,同其他的编程语言一样,索引值从0开始, 现在如下PERL程序: my $fred[0]="abc"; my $fred[1]="bcd"; my $fred[2]=7; PERL数组与其他不同的是PERL数组可能包含数字,字符串,undef等等,不同的数据类型,同时我们要记住,每个元素都是独立不相关的标量值,也就是说 $fred[0]="abc"; $fred="das"; print $fred[0]; print $fred; 这是两种不同的操作,每个元素都是独自不相关的标量值!!!,也就是说$fred和$fred[0]是不同的两个变量, 还有要注意的就是数组可以包含多个元素,最少的情况是0个元素,最多的情况下整个内存都是该元素的值, 比如: $fred[0]="abc"; $fred[99]="bcd"; 如果我们对超过数组尾端的元素进行赋值,数组会将根据需要自动扩大,(如果内存空间允许的话),数组长度是没有限制的。 当然,这中间的我们没有赋值的元素师$fred[1]~$fred[98]都是undef 任何数字表达式都可以作为下标,如果他不是整数,则自动舍去小数,无论正负, $fred[2]="abcdef"; $number=2.1312; print $fred[$number];#结果和print $fred[2]是一样的; 如果数组索引值超过了数组长度,那么对应的值就是undef,嗯,undef $blank=$fred[142_857]; print $blank; 特殊的索引: 动态的获取数组里最后一个元素的索引值: $#fred;这就是fred数组的最后一个元素的索引值, $fred[$#fred]这就是数组fred最后一个元素的值; 另外如果我们想知道数组的长度,应该是使用$#fred+1;因为$#fred是最大的索引值,但是还有一个$fred[0]元素,所以也就是$#fred要比数组长度小一个, 还有三个特殊的索引,这几个索引是负值,-1,-2,-3, -1代表的是最后一个元素 -2代表的是中间的元素 -3代表的是第一个元素 对于整个数组的引用是使用@操作符 $fred[0]="abc"; $fred[1]="bcd"; print @fred;#引用的是整个数组 列表直接量列表中元素的赋值,可以使用小括号来进行赋值 (1,2,3);包含1 2 3的这三个数字的列表 ("fred",4.5);包含字符串和4.5两个元素 ();#空列表,0个元素 还有一个范围操作符".."该操作符会从左边的数字计数到右边,每次加1 (1..5)与(1,3,4,5)相同 (1.2..2.2)#就是(1,2) @fred=(0,2..8);就是0 2 4 6 8 列表一般通过qw来进行赋值 ("fred","barney","betty","wilma","dino"); 而qw表示("quoted word")给单词加上引号, 另外qw加上引号,都会当成单引号的字符来进行处理,所以也就不能处理n,$fred等值 qw(fred barney betty wilma dino)同上 上次我们说的是小括号作为qw操作的起始和结束的,实际上有好多操作符都是可以的 还有 ($fred,$barney,$dino)=qw(flina rubble undef); 这里面$dino里面就是"undef",因为我们知道qw是单引号的,'undef' ($fred,$barney)=($barney,$fred);互换两者的值 对于qw操作符中,如果两边的要进行赋值的变量的个数和所给的数据不相等时候, ($fred,$barney)=qw(filter hehe sha le);#这样qw会自动忽略sha le这两个数值 ($wilma,$dina)=qw(filter);#这样的话$dina会被赋值给undef @giant=(1..1000); 这样stuff则是一共2001个元素,并且stuff是按照一维数组展开的。 @copy=@stuff;将一个数组赋值到另一个数组当中 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |