Perl 数组
Perl 数组一个是存储标量值的列表变量,变量可以是不同类型。
数组变量以 @ 开头。访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取。
1、创建列表、数组
1.数组变量以 @ 符号开始,元素放在括号内,
2.以 qw 开始定义数组,第二个数组使用 qw// 运算符,它返回字符串列表,数组元素以空格分隔。
@array1 = (1, 2, 'Hello'); 列表
@array2 = [1, 2, 'Hello']; 数组
@array3 = qw/this is a array/;
print @array1[0]; #1
print @array1; #12hello
print @array2[0]; #1
print @array2; #ARRAY(0x26e3160)
2、访问数组元素
访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取。
数组索引值
从正向开始读取, 0 开始,即 0 为第一个元素,1 为第二个元素,以此类推。
负数从反向开始读取, -1开始,即 -1 为第一个元素, -2 为第二个元素 。
3、列表、数组序列号
Perl 提供了可以按序列输出的数组形式,格式为 (起始值 .. 结束值)。
#!/usr/bin/perl @var1_10 = (..); @var2_10 = [..]; print @var1_10 # print @var2_10 #ARRAY(0x26e3160)
4、数组大小
数组大小由数组中的标量上下文决定。
。。。。。。
5、添加和删除数组函数
Perl 提供了一些有用的函数来添加和删除数组元素。
序号 | 类型和描述 |
---|---|
1 |
push @ARRAY, LIST
将列表的值放到数组的末尾 |
2 |
pop @ARRAY
弹出数组最后一个值,并返回它 |
3 |
shift @ARRAY
弹出数组第一个值,并返回它。数组的索引值也依次减一。 |
4 |
unshift @ARRAY, LIST
将列表放在数组前面,并返回新数组的元素个数。 |
6、切割数组
我们可以切割一个数组,并返回切割后的新数组:
实例
#!/usr/bin/perl @sites = qw/ /; @sites2 = @sites[,,]; @sites3 = @sites[..]; print print
7、替换数组元素
Perl 中数组元素替换使用 splice() 函数,语法格式如下:
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
参数说明:
@ARRAY:要替换的数组。
OFFSET:起始位置。
LENGTH:替换的元素个数。
LIST:替换元素列表。
以下实例从第6个元素开始替换数组中的5个元素: 实例 #!/usr/bin/perl @nums = (..); print "替换前: @nums\n"; splice(@nums, , , ..); print "替换后: @nums\n"; 执行以上程序,输出结果为: 替换前: 替换后:
8、将字符串转换为数组
Perl 中将字符串转换为数组使用 split() 函数,语法格式如下:
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
参数说明:
PATTERN:分隔符,默认为空格。
EXPR:指定字符串数。
LIMIT:如果指定该参数,则返回该数组的元素个数。
示例: #!/usr/bin/perl # 定义字符串 $var_1 = "hello"; $var_2 = "hello-welcome-world"; $var_3 = "hello,welcome,world,goodbye"; # 字符串转为数组 @var_1 = split('', $var_1); @var_2 = split('-', $var_2); @var_3 = split(',', $var_3); print "$var_1[1]\n"; # 输出 e print "$var_2[1]\n"; # 输出 welcome print "$var_3[1]\n"; # 输出 welcome
9、将数组转换为字符串
Perl 中将数组转换为字符串使用 join() 函数,语法格式如下:
join EXPR, LIST
参数说明:
EXPR:连接符。
LIST:列表或数组。
实例 #!/usr/bin/perl # 定义字符串 $var_1 = "hello-welcome-world"; $var_2 = "hello,welcome,world,goodbye"; # 字符串转为数组 @var_1 = split('-', $var_1); @var_2 = split(',', $var_2); # 数组转为字符串 $var_1 = join( '-', @var_1 ); $var_2 = join( ',', @var_2 ); print "$var_1\n"; print "$var_2\n";
10、数组排序
Perl 中数组排序使用 sort() 函数,语法格式如下:
sort [ SUBROUTINE ] LIST
参数说明:
SUBROUTINE:指定规则。
LIST:列表或数组。
实例 #!/usr/bin/perl # 定义数组 @sites = qw(hello world say goodbye); print "排序前: @sites\n"; # 对数组进行排序 @sites = sort(@sites); print "排序后: @sites\n"; 执行以上程序,输出结果为: 排序前: hello world say goodbye 排序后: hello goodbye say world
11、合并数组
数组的元素是以逗号来分割,我们也可以使用逗号来合并数组,如下所示:
实例 #!/usr/bin/perl @numbers = (,,(,,)); print
也可以在数组中嵌入多个数组,并合并到主数组中:
实例 #!/usr/bin/perl @odd = (,,); @even = (, , ); @numbers = (@odd, @even); print
12、从列表中选择元素
一个列表可以当作一个数组使用,在列表后指定索引值可以读取指定的元素,如下所示:
实例 #!/usr/bin/perl $,,,,)[]; print