Perl 变量:数组变量
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 @var1_10 = (..); @var2_10 = [..]; print @var1_10 # print @var2_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/ /; @sites2 = @sites[,,]; @sites3 = @sites[..]; print print
7、替换数组元素
Perl 中数组元素替换使用 splice() 函数,语法格式如下:
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
参数说明:
@ARRAY:要替换的数组。
OFFSET:起始位置。
LENGTH:替换的元素个数。
LIST:替换元素列表。
以下实例从第6个元素开始替换数组中的5个元素: 实例 #!/usr/bin/perl @nums = (..); print "替换前: @nums\n"; splice(@nums, , , ..); print "替换后: @nums\n"; 执行以上程序,输出结果为: 替换前: 替换后:
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 = (,,(,,)); print
也可以在数组中嵌入多个数组,并合并到主数组中:
实例 #!/usr/bin/perl @odd = (,,); @even = (, , ); @numbers = (@odd, @even); print
12、从列表中选择元素
一个列表可以当作一个数组使用,在列表后指定索引值可以读取指定的元素,如下所示:
实例 #!/usr/bin/perl $,,,,)[]; print
Perl 变量:数组变量的更多相关文章
- Perl关联数组用法集锦
本文和大家重点讨论一下Perl关联数组的概念,创建Perl关联数组,从数组变量复制到Perl关联数组,元素的增删,用Perl关联数组循环等内容,相信通过本文的学习你对Perl关联数组的用法一定会有深刻 ...
- perl访问数组中变量
数组一个是存储标量值的无序列表变量. 数组变量以 @ 开头.访问数组元素使用 $ + 变量名称 + [索引值] 格式来读取,实例如下: #!/usr/bin/perl @names = (" ...
- Perl 变量:标量变量、数组变量、哈希变量和变量上下文
一.Perl 变量变量是存储在内存中的数据,创建一个变量即会在内存上开辟一个空间.解释器会根据变量的类型来决定其在内存中的存储空间,因此你可以为变量分配不同的数据类型,如整型.浮点型.字符串等.上一章 ...
- perl 数组变量(Array) 转载
Perl 变量(2)--数组 原文地址:Perl 变量(2)--数组 作者:飞鸿无痕 二.数组 数组是标量数据的有序列表. 数组可以含任意多个元素.最小的数组可以不含元素,而最大的数组可以占满全部可用 ...
- Perl常用特殊变量
perl 内置变量 $- 当前页可打印的行数,属于Perl格式系统的一部分 $! 根据上下文内容返回错误号或者错误串 $” 列表分隔符 $# 打印数字时默认的数字输出格式 $$ Perl解释器的进程I ...
- perl5 第四章 列表和数组变量
第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮 1.数组的存取 2.字符串中的方括号和变量替换 3.列表范围 4.数组的输出 5.列表/数组的长度 ...
- 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量
多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...
- $_REQUEST变量数组header()函数
$_SERVER 包含http信息头,路径和服务器端的一些信息,没发送一次HTTP请求,就会创建一个$_SERVER数组Array ( [HTTP_HOST] => localhost [HTT ...
- block中无法使用C数组变量
在Objective-C的block中无法使用C数组,即使我们不对C数组做任何改变,编译的时候也会报错: #include <stdio.h> int main() { const cha ...
随机推荐
- json常用方法和本地存储方法
1.JSON.parse()[把json字符串解析成json对象] 2.JSON.stringify()[把json对象中解析成json字符串] <script> let obj = '{ ...
- 【最全 干货 实例】 缓存手册(Memcached、redis、RabbitMQ)
http://www.cnblogs.com/suoning/p/5807247.html 本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 re ...
- 记一次 FastAdmin CMS 内容提示空的问题
记一次 FastAdmin CMS 内容提示空的问题 有小伙伴反馈 FastAdmin CMS 安装后出现内容有文字,但提示错误 的问题. 我在本地重新安装测试并没有发现这个问题,一切正常,编辑器也可 ...
- python编程规范系列--建议01~07
本系列来自<编写高质量代码 改善python程序的91个建议>的读书笔记整理. 本书主要内容 1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等: 2)编写py ...
- cocos2d
http://www.jetbrains.com/webstorm/download/index.html 运行又有下面错误 Fatal signal 11 (SIGSEGV) at 0x000000 ...
- CentOS6.8编译安装LAMP
CentOS6.8编译安装Apache2.4.25.MySQL5.7.16.PHP5.6.29 初始化 #固定IP vi /etc/sysconfig/network-scripts/ifcfg-et ...
- 用 Linux blkid 命令查找块设备详情
今天我们将会向你展示如何使用 lsblk 和 blkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机器. lsblk lsblk 是一个 Linux 工具,它会显示 ...
- js的delegate回调例子
暂时没发现有具体的实际用处,先记录下 <!DOCTYPE html> <html> <head lang="en"> <meta char ...
- java web 程序---刷新页面次数
<%! int count=0; %> <% count++; session.setAttribute("count",count); out.print(&q ...
- Fiddler移动端抓包
有关手机抓包之前没有接触过,实际工作用到的不多,因此学了也就忘了. 来了新公司之后,产品主要以移动端为主,抓取线上线下包便成了平常之事,一些开发也会来请教如何在手机上抓包. 回归正题,抓取移动端包有很 ...