perl列表与数组实例学习

发布时间:2020-07-22编辑:脚本学堂
如果标量(数字和字符串)可以认为是perl语言中的单数,那么列表和数组可以认为是perl语言中的复数,列表是标量的有序集,数组时包含列表的向量,数组是有括号括起来并且其元素由逗号分开的列表。

本文为大家介绍几个perl列表与数据的例子,供大家学习参考。

如果标量(数字和字符串)可以认为是perl语言中的单数,那么列表和数组可以认为是perl语言中的复数,列表是标量的有序集,数组时包含列表的向量,数组是有括号括起来并且其元素由逗号分开的列表。

举一个简单的例子(不知道对不对):单个的数字1 2 3是标量,放在一起1 2 3是列表,( 1,2,3)为数组,注:##含有1,2,3的列表

定义一个标量以$开头,定义一个数组以@开头:

例如:
@arry=qw(dino fred barney);  其向量编号从0开始, @arry[0] , @arry[1], @arry[2].输出第二个元素有两种方式:
 

复制代码 代码如下:
print"$arry[1]n" ;  和print"@arry[1]n" ;

全部输出命令为:
 

复制代码 代码如下:
print"@arryn" ; 这个时候就不能用print"$arryn" ;

练习题:
1:写一个程序,将一些字符串(不同的行)读入一个列表中,逆向输出它。如果是从键盘输入的,那在Unix 系统中应当使用CTRL+D 表明end-of-file,在Windows 系统中使用CTRL+Z.
答案:print reverse<STDIN>;

2: 写一个程序,读入一串数字(一个数字一行),将和这些数字对应的人名(下面列出的)输出来。(将下面的人名列表写入代码中)。例如,当输入为1,2,4 和2,则输出的为fred, betty, dino, 和betty:
fred betty barney dino Wilma pebbles bamm-bamm 
答案1:(自己编写)
 

复制代码 代码如下:
#!/usr/bin/perl
   @me=qw(fred betty barney dino wilma pebbles bamm-bamm);
   @wo=<STDIN>;
foreach $number(@wo){
    print "$me[$number]n";
    }

答案2:
 

复制代码 代码如下:
@_=qw((fred betty barney dino wilma pebbles bamm-bamm);for(<STDIN>){
    print "$_[$_-1]n";
}

3:写一个程序,将一些字符串(在不同的行中)读入一个列表中。然后按ASCII 顺序将它们输出来。也就是说,当输入的字符串为fred, barney, wilma, betty,则输出为barney betty fred wilma。分别在一行或不同的行将之输出。

答案:#将字符串读入列表,按ASCII顺序输出
 

复制代码 代码如下:
@_=sort<STDIN>;
chomp(@_);
print @_;
 

说明:按照上述例子,如果输入fred, barney, wilma, betty
 

复制代码 代码如下:
print @_;得到barneybettyfredwilma(无空格)
print "@_";  得到barney betty fred wilma(有空格)