加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

PERL中的数组和列表

发布时间:2020-12-16 00:07:56 所属栏目:大数据 来源:网络整理
导读:PERL数组中所有的元素都是有初始值的,即为undef,同其他的编程语言一样,索引值从0开始, 现在如下PERL程序: my $fred[0]="abc"; my $fred[1]="bcd"; my $fred[2]=7; PERL数组与其他不同的是PERL数组可能包含数字,字符串,undef等等,不同的数据类型,同时

PERL数组中所有的元素都是有初始值的,即为undef,同其他的编程语言一样,索引值从0开始,

现在如下PERL程序:

my $fred[0]="abc";

my $fred[1]="bcd";

my $fred[2]=7;

PERL数组与其他不同的是PERL数组可能包含数字,字符串,undef等等,不同的数据类型,同时我们要记住,每个元素都是独立不相关的标量值,也就是说

$fred[0]="abc";

$fred="das";

print $fred[0];

print $fred;

这是两种不同的操作,每个元素都是独自不相关的标量值!!!,也就是说$fred和$fred[0]是不同的两个变量,

还有要注意的就是数组可以包含多个元素,最少的情况是0个元素,最多的情况下整个内存都是该元素的值,

比如:

$fred[0]="abc";

$fred[99]="bcd";

如果我们对超过数组尾端的元素进行赋值,数组会将根据需要自动扩大,(如果内存空间允许的话),数组长度是没有限制的。

当然,这中间的我们没有赋值的元素师$fred[1]~$fred[98]都是undef

任何数字表达式都可以作为下标,如果他不是整数,则自动舍去小数,无论正负,

$fred[2]="abcdef";

$number=2.1312;

print $fred[$number];#结果和print $fred[2]是一样的;

如果数组索引值超过了数组长度,那么对应的值就是undef,嗯,undef

$blank=$fred[142_857];

print $blank;

特殊的索引:

动态的获取数组里最后一个元素的索引值:

$#fred;这就是fred数组的最后一个元素的索引值,

$fred[$#fred]这就是数组fred最后一个元素的值;

另外如果我们想知道数组的长度,应该是使用$#fred+1;因为$#fred是最大的索引值,但是还有一个$fred[0]元素,所以也就是$#fred要比数组长度小一个,

还有三个特殊的索引,这几个索引是负值,-1,-2,-3,

-1代表的是最后一个元素

-2代表的是中间的元素

-3代表的是第一个元素

对于整个数组的引用是使用@操作符

$fred[0]="abc";

$fred[1]="bcd";

print @fred;#引用的是整个数组

列表直接量

列表中元素的赋值,可以使用小括号来进行赋值

(1,2,3);包含1 2 3的这三个数字的列表

("fred",4.5);包含字符串和4.5两个元素

();#空列表,0个元素

还有一个范围操作符".."该操作符会从左边的数字计数到右边,每次加1

(1..5)与(1,3,4,5)相同

(1.2..2.2)#就是(1,2)

@fred=(0,2..8);就是0 2 4 6 8

列表一般通过qw来进行赋值

("fred","barney","betty","wilma","dino");

而qw表示("quoted word")给单词加上引号,

另外qw加上引号,都会当成单引号的字符来进行处理,所以也就不能处理n,$fred等值

qw(fred barney betty wilma dino)同上

上次我们说的是小括号作为qw操作的起始和结束的,实际上有好多操作符都是可以的

还有

($fred,$barney,$dino)=qw(flina rubble undef);
print $dino;

这里面$dino里面就是"undef",因为我们知道qw是单引号的,'undef'

($fred,$barney)=($barney,$fred);互换两者的值

对于qw操作符中,如果两边的要进行赋值的变量的个数和所给的数据不相等时候,

($fred,$barney)=qw(filter hehe sha le);#这样qw会自动忽略sha le这两个数值

($wilma,$dina)=qw(filter);#这样的话$dina会被赋值给undef

@giant=(1..1000);
@stuff=(@giant,undef,@giant);
print $stuff[2000];

这样stuff则是一共2001个元素,并且stuff是按照一维数组展开的。

@copy=@stuff;将一个数组赋值到另一个数组当中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读