一、结构
二、列表
(1)列表的一般形式
说明:qw是单词列表(定界符delimiter任意),默认空白符号都会抛弃(所以可以排成一列),剩下的就是单词了!
(2)范围运算符的应用
练习
#(1)练习1
print '单元素列表:';
my @a=(2);
# 前面的符号表示获取的是标量!
my $a=$a[0];
print $a;
#(2)练习2
print "\n列表的范围:";
# ".."范围运算符-->必须上限大于等于下限-->步长为1!
@a=(1,4.1..8.2,10);
# 默认以空格作为间隔
print "@a";
#(3)练习3
print "\n字符串的范围运算:";
# 关于月份的一个应用!-->输出没有空格分割!
print ('01'..'12');
#(3)练习3
print "列表元素:";
$a=(1,2,3,4)[1];
print "$a\n";
#(4)列表赋值
print "列表赋值:";
$a=(1,2,3);
print "$a\n";
三、数组
(1)列表和数组的关系
过程:把列表存储起来,保存到数组变量中!
列表是指标量的有序集合(指的是数据),而数组则是存储列表的变量(指的是变量)!
列表的数值不一定要放在数组里面(只能使用一次),每个数组变量一定包含一个列表(即使是没有元素的空列表)
通俗理解:数组存储的是列表的地址!
每个元素是相互独立不相关的标量值,所以可以存储相同的数值和不同类型标量值的混合体!
(2)数组的一般表现形式
共性:列表和数组的操作是相通的!
(3)数组元素的访问
方式:使用下标的方式来访问,形如$a[index]
说明:index可以是表达式!
注意1:如果index不是整数,则会自动舍去小数部分,因为[]也算运算符!
注意2:访问超出数组长度不会报错,获取的值是undef!
(4)数组的赋值
自动扩容(没有赋值的元素为空)
练习
use strict;
use warnings;
#(1)练习1
print "\$a的数值在循环后恢复:";
$a=1;
print $a;
foreach $a(2,3,4) {print $a ."\n";}
print $a;
#(2)练习2
my @b=(1,2,3);
# 数组最后一个元素的索引
print "数组的长度是:$#b+1"; #2 +1
# 改变$#b会改变数组的长度,相当于截取之类的!
$#b=1;
print "数组的元素减少为:@b\n"
(5)数组的读出
说明:等长度和不等长度!
(6)数组的片段--->类似切片
(7)数组的常用函数
use strict;
use warnings;
#(1)练习1
print "sort排序的使用:";
# 默认(缺性)是字母排序
my @a=(11,22,1,8,7,2,0,3,10);
print sort(@a);
# 011011222378
print "\n";
# 数字排序-->自定义比较的方式!
# <=>自动作为数字比较!
print sort {$a<=>$b} (@a);
# 012378101122