perl 语言(数组)

perl 语言(数组)

perl 数组是一个储存多个标量的列表。

数组的赋值和读取

Perl 数组的读取是通过 $list[index] 来实现的

如:

#!/usr/bin/perl
@animals = ('cat','fish','dog','ant');
$str = @animals[2];
# dog
print $str."\n";
# dog
print $animals[2];

给数组赋值可以有以下三种方法:

#!/usr/bin/perl
@array1 = qw/12 23 34/;
@array2 = (12,23,34);
@array3[0] = 12;
@array3[1] = 23;
@array3[2] = 34;
# 12 23 34	12 23 34	12 23 34
print "@array1\t@array2\t@array3\n";
# 3    3    3
print $array1."\t".$array2."\t".$array3;

这里,数组可以通过qw/…/ , 直接赋值和索引赋值来实现,但是注意的是,如果在对数组的引用中出现了“." 这种表示字符串拼接的符号,数组的内容就会转换成数组的个数。

连续输入数组

#!usr/bin/perl
@num = (1..9);
@alphabet = (a..z);
# Output number
foreach $number (@num)
{
	print $number."\t";
}
print "\n";
$alphabet = join "\t", @alphabet;
print $alphabet;

数组的基本函数

1. push

将列表数值放在数组的末尾。
如果我想去餐厅吃饭, 要排号就可以用push来表达

#!usr/bin/perl
# restaurant number
# there already have been 24 customers.
@queue = (1..24);
# push my information into program
push @queue, "Monica";
# get my number
$number = @queque
print "$number\n";

2. pop

删除数组最后一个值
pop @material
如果需要从尾部去掉一个成分,则可以写成:

#!/usr/bin/perl
@names = ("Monica","Fermina","Ariza","Jane");
foreach $name (@names)
{
	if $name not eq "Fermina"
	{
		pop @names;
	}
}

3. shift

弹出数组第一个值,并返回它,数组的索引值也依次减一,即移除数组第一个值

#!/usr/bin/perl
# please input your codes
@a = ("Monica","Fenima","Ariza","Trump","Carlo");
shift @a;
print @a;

4. unshift

在开头添加一个元素

#!/usr/bin/perl
@a = ("Monica","Fenima","Ariza","Trump","Carlo");
unshift @a, "Ben";
$a = join "\t", @a;
print $a;

字符串转数组

1 split
$name = (“Monica Femina Elan Trump”);

#!/usr/bin/perl
$name_list = "Monica Fermina Ariza Elan Trump";
# split this string by " "
@names = split " ",$name_list;
"""
output results
Monica
Fermina
Ariza
Elan
Trump
"""
foreach $name (@names)
{
	print $name;
	print "\n";
}

数组转字符串

数组变成字符串,意义上就是将各个字符连接起来(join),所以要用到join函数
如下:

#!usr/bin/perl
#please input your codes
# initialization
@country = ("China","America","France","Australia");
# transform them into a list
$CountryName = join " - - ", @country;
# Output: Monica-Fermina-Grace-Paris

其中, join 也可以写成 join(" ",@list) 的形式。但是与我而言。第一种表示比较简单。

截断数组

想从数组中得到特定位置的元素,可以这么表达:

#!/usr/bin/perl
@countries = qw/China America France Australia/;
@country = @countries[2..4];
# 3
print @country."\n";
# France Australia
print "@country/n";
# China America France Australia
print @countries

替换数组元素 (splice)

splice @array, OFFSET, LENGTH, LIST

例子:Jerry的成绩单打错了,需要调整。

#!/usr/bin/perl
@gradelist = (95,96,70,88,73,94,87,92,89);
splice @gradelist, 2, 3, (81,79,80);
# Jerry's grade list is 95	96	81	79	80	94	87	92	89
print "Jerry's grade list is ", join "\t", @gradelist,"\n";

参考文献

https://www.runoob.com/perl/perl-arrays.html

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值