Perl基础 Perl数组学习指南
本文和大家重点讨论一下Perl数组的概念,主要包括基本的Perl数组和一些与Perl数组相关的函数等内容,另外Perl中所有Perl数组变量都以@开头,相信通过本文的学习你对Perl数组的概念有全面的认识。
Perl数组
Perl中所有Perl数组变量都以@开头
(1)基本Perl数组
定义和使用
my@list=("a","b","c");
$list[0],$list[1],$list[2],下标从0开始
Perl数组中元素个数:$#array_name,返回Perl数组中最后一个变量的索引=Perl数组元素个数-1
空Perl数组$#array_name=-1
Perl数组表达式:
@array=(1,$data,"sam");
@array_dest=@array_source;
@full_message=($prefix1,$prefix2,@message);//在message前面加了两个元素,赋值full_message
打印Perl数组:
print“@array”,打印结果中间用空格分隔,去掉双引号,中间没有分隔
带有“黑洞”的Perl数组:
如果Perl数组中有没有赋值的元素,则为undef,例如:
my@array=(1);
$array[5]=4;//中间的几个下标对应的都是undef
引用词运算符qw:
my@array=qw(tomdickharry);//中间除了空格没有其他分隔符
相当于my@array=("tom","dick","harry");
(2)一些Perl数组相关函数:
push(@array,$value):向结尾添加一个元素
pop(@array):取走最后的元素并返回
unshift(@array,$value):在Perl数组起始添加一个元素
shift(@array)或者shift@array:取走第一个元素并返回(函数都可以省略括号)
(3)处理Perl数组的一部分:
可以用一套索引,例如:
my@new_array=@array[1,3,5];
@array[1,0]=@array[0,1];
范围运算符,例如:
@arry[0..9]=((0)x10);//重复10次0
(4)splice函数
splice可以删除或者替换Perl数组的一部分,格式为:
splice@array,$offfset//删除从offset开始到末尾,offset为下标,offset为负数则从结尾算起
例如:
my@array=(0,1,2,3,4,5);
splice(@array,-2);
将得到0123
splice会返回最后删除的函数。
splice另一种形式:
splice@array,$offset,$length,删除length个元素
第三种形式:
splice@array$offset,$length,REPLACEMENTS
删掉后,从offset开始添加REPLACEMENTS里的元素,REPLACEMENTS可以是标量或者Perl数组
(5)split和join函数
@array=splitRegExpr,$string//将$string按照RegExpr指定的分隔符来分解放到@array中
$string=join$union,@array//将@array中元素用$union连接,赋值给@string
(6)Perl数组排序
sort函数,默认按照ASCII顺序排序:
my@sorted=sort@array;
按数字顺序排序:
@result=sort{$a<=>$b},@unsorted;