文章目录
前言
本文主要记录perl学习过程中的数组与列表。
2 数组与列表
2.1 访问数组中的元素
$a[0] = "hello";
$a[1] = "world!";
print @a # helloword!
# 可以通过负数下标从末尾开始取
print $a[-2] # hello
2.2 数组中的范围操作符 . .
# 可以通过范围操作符进行连续取值
@b = (1..5);
print "@a" # 1 2 3 4 5
2.3 数组变量内插以及默认分隔符$"
@a = ("hello", "world!");
#数组变量内插,默认用空格隔开
print "@a" # hello world!
#但是也可以设置默认分隔符$"
$" = ","
print "@a" # hello,world!
2.4 列表qw
qw后边的符号没有限制,但是要前后保持一致。
@a = qw( hello world! );
#@a = qw/ hello world! /;
#@a = qw% hello world! %;
print "@a";
2.5 数组foreach操作以及默认变量$_
@a = qw( a b c d e f g);
print "@a\n";
foreach $temp (@a){
print "$temp\n"
}
foreach (@a){
print "$_\n"
}
2.6 数组的pop push shift unshift reverse sort操作
@a = qw( a b c d e f g);
print "@a\n";
$temp = pop(@a); #在后面删除
print "$temp\n"; # g
print "@a\n"; # a b c d e f
push(@a, "g"); #在后面增加
print "@a\n"; # a b c d e f g
$temp = shift(@a); #在前面删除
print "$temp\n"; # a
print "@a\n"; # b c d e f g
unshift(@a, "a"); #在前面增加
print "@a\n"; # a b c d e f g
revers(@a); #反向
print "@a\n"; # g f e d c b a
sort(@a); #排序
print "@a\n"; # a b c d e f g
@num = (20, 2, 10, 8, 4);
@num = sort {$a<=>$b} @num; #数字排序
print "@num\n"; #2 4 8 10 20
2.7 标量上下文以及标量转换函数scalar
@people = qw(a b c d e f g);
$num = 12 + @people;
print "$num\n"; # 19
print "I have", scalar @people, "people!";
2.8 标量和列表上下文的输入
$input = <STDIN>; #只能输入一行
print "$input\n";
chomp(@input = <STDIN>); #可以输入多行
print "@input\n";