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 ...
随机推荐
- 【spring源码学习】spring的task配置
=================spring线程池的配置策略含义========================== id:当配置多个executor时,被@Async("id" ...
- apiman 一个apigateway
APIMAN 提供 API 管理的方法技术,结合一个 API 设计/配置层以及快速的运行时. 主要特性: 完全异步 丰富的管理层 容易嵌入 API 管理 参考资料 http://www.apiman. ...
- wordpress缓存插件使用提高网站速度
WordPress是世界上使用量最多的CMS,由于程序非常吃主机性能,正常情况下当页面被访问时,使用php和mysql. 因此,系统需要消耗RAM和CPU. 如果同一时间有大量访客访问,系统将使用大量 ...
- angular的指令独立作用域(以及$watch的使用)
在编写指令的时候,会有一个独立作用域的问题(scope),他默认的是 scope:false 不创建自己的作用域,直接使用的就是父级的作用域, 问题:容易出现全局的污染,是的指令的重复性使用回出现一些 ...
- angualrJS(mvc)指令嵌套使用的一些问题
angular的指令拥有一个独立作用域的概念. 一般定义指令的形式: define(['app'],function(mianapp){ mainapp.directive("tlmsAol ...
- string源码分析 ——转载 http://blogs.360.cn/360cloud/2012/11/26/linux-gcc-stl-string-in-depth/
1. 问题提出 最近在我们的项目当中,出现了两次与使用string相关的问题. 1.1. 问题1:新代码引入的Bug 前一段时间有一个老项目来一个新需求,我们新增了一些代码逻辑来处理这个新需求.测试阶 ...
- C#String地址、拼接性能学习
String类型不可变.定义string变量时会在堆上分配存储空间,而对该变量进行值变更时会重新分配一个存储空间,且保留原存储空间. 测试思路:获取string类型变量值变更前后的存储空间地址,判断地 ...
- 【转】Jmeter使用之常用函数介绍
"_csvRead"函数 csvRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数. 下面具体讲一下如何使用csvread函数: 1.新建一个csv或者t ...
- 操作系统-服务器-百科:Windows Server
ylbtech-操作系统-服务器-百科:Windows Server Windows Server是微软在2003年4月24日推出的Windows 的服务器操作系统,其核心是Microsoft Win ...
- CentOS 7 安装 Nodejs npm 及版本冲突解决
JC&BC 笔记: 可能没安装过 npm 的人会有点疑惑,安装 npm 跟安装 nodejs 有什么关系? 安装 npm 其实就是安装 nodejs 的过程.这一点官方说的很明白,npm 依赖 ...