码迷,mamicode.com
首页 > 编程语言 > 详细

Perl 变量:数组变量

时间:2018-09-01 12:26:01      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:表变量   分割   perl   out   offset   数组元素   enc   括号   exp   

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

@var_10 = (1..10);  
@var_10 = [1..10];
print @var_10                 #1 2 3 4 5 6 7 8 9 10
print @var_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/11 22 33 44 55 66 77/;
 
@sites2 = @sites[3,4,5];
@sites3 = @sites[3..5];
 
print "@sites2\n";      #44 55 66
print "@sites3\n";            #44 55 66

 



7、替换数组元素
Perl 中数组元素替换使用 splice() 函数,语法格式如下:
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
 参数说明:
    @ARRAY:要替换的数组。
    OFFSET:起始位置。
    LENGTH:替换的元素个数。
    LIST:替换元素列表。

以下实例从第6个元素开始替换数组中的5个元素:
实例
#!/usr/bin/perl
 
@nums = (1..10);
print "替换前: @nums\n";
 
splice(@nums, 5, 5, 21..25);
print "替换后: @nums\n";

执行以上程序,输出结果为:
替换前:1 2 3 4 5 6 7 8 9 10
替换后:1 2 3 4 5 21 22 23 24 25 

 



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 = (1,3,(4,5,6));
print "numbers = @numbers\n";     #numbers = 1 3 4 5 6


也可以在数组中嵌入多个数组,并合并到主数组中:

实例
#!/usr/bin/perl
 
@odd = (1,3,5);
@even = (2, 4, 6);
 
@numbers = (@odd, @even);
 
print "numbers = @numbers\n";   #numbers = 1 3 5 2 4 6

 



12、从列表中选择元素
一个列表可以当作一个数组使用,在列表后指定索引值可以读取指定的元素,如下所示:

实例
#!/usr/bin/perl
 
$var = (5,4,3,2,1)[4];
print "var 的值为 = $var\n"     #var 的值为 = 1

 



Perl 变量:数组变量

标签:表变量   分割   perl   out   offset   数组元素   enc   括号   exp   

原文地址:https://www.cnblogs.com/sunziying/p/9569222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!