Perl入门(三)Perl的数组
Perl数组的声明方式
Perl使用"@"符号声明一个数组:@array;
使用"()"或"qw()"声明数组中元素;
一个完整的声明方式为:
@array = (12,"123","abc",$var);......方法一
或者
@array = qw(12 123 abc); ............方法二
或者
@array = (1..10).....................方法三
Perl数组的存取
数组通过下标进行存取,数组的下标从0开始,单个元素存取推荐使用$,多个元素存取推荐使用@。
以@array=(1,2,3,4,5,6,7);为例
取数组元素:
$array[0]表示数组的第一个元素 1,以此类推。
@array[1..3]表示数组的第二个元素到第四个元素:2,3,4
@array[1,2,4]表示数组的第二,第三和第五个元素:2,3,5;顺序也可以交换:@array[4,1,2]: 5 2 3;
修改数组
通过上述取数组元素的方法,取得元素,然后进行重新赋值。
$array[0]= -1;# $array=(-1,2,3,4,5,6,7)
@array[1..2]=(8,9); # $array=(1,8,9,4,5,6,7)
Perl数组的初始化方法
()初始化
如【方法一】所示,将元素放入括号内以","为分隔符
qw()初始化
如【方法二】所示,将元素放入qw()的括号内,元素之间以【空格】分隔,字符串类型不需要使用引号。
缺点:它将括号内内容视为一整个字符串,然后根据空格进行分割,但是如果你希望某一个元素中也包含个空格,就没有办法实现.
..初始化
如【方法三】所示,".."表示一个范围,(1..5)等价于(1,2,3,4,5),(a..z)表示字母a-z的集合
Perl数组的基本属性
$#array 表示数组的最后一个元素的下标,数组长度-1
@array 表示数组长度,直接进行print会输出数组内容
Perl数组的遍历
方法一:使用循环数组下标进行遍历(较简单,自己动手尝试)
方法二:使用foreach循环进行遍历
#!user/bin/env perl -w
@array = qw(1 2 3 4 5 6); $var = 100; foreach $var (@array)
{
print "$var\n";
} print "var is : $var\n";输出结果
1
2
3
4
5
6
var is : 100上述输出结果中:
- foreach如何进行遍历
- 应该有注意到$var,var在循环中,担任一个局部变量的角色,循环完成后var的值还是原来的100,可以理解为:这个过程中有两个$var,一个是循环外面的,另外一个是foreach的局部变量.
数组相关的函数
sort:按照字符在ASCII码表中的顺序逐位向下进行排序
reverse:将数组进行倒序
Perl入门(三)Perl的数组的更多相关文章
- Perl 数据类型:标量、数组、哈希
Perl 数据类型Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型. Perl 有三个基本的数据类型:标量.数组.哈希.以下是这三种数据类型的说明: 序 ...
- Perl入门(四)Perl的正則表達式
正則表達式是Perl语言的特色.主要的语法不是非常难,可是编写一个符合需求.高效的正則表達式.还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正則表達式内容/; 作用:查找匹配内容中是 ...
- Perl入门(四)Perl的正则表达式
正则表达式是Perl语言的特色,基本的语法不是很难,但是编写一个符合需求.高效的正则表达式,还是有一些挑战的. Perl的三种匹配模式 1.查找 语法:m/正则表达式内容/; 作用:查找匹配内容中是否 ...
- Perl入门(七) Perl脚本的调试
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/sunshoupo211/article/details/32711165 编程中错误不可避免.调试可 ...
- Swift语法基础入门三(函数, 闭包)
Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...
- Thinkphp入门三—框架模板、变量(47)
原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display() 调用当前操作名称的模板 display(‘名字’) 调用指定名字的模板文件 控制器调用模板四种方式 ...
- 【C语言探索之旅】 第二部分第三课:数组
内容简介 1.课程大纲 2.第二部分第三课: 数组 3.第二部分第四课预告:字符串 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语 ...
- Swift入门(五)——数组(Array)
集合 集合的定义 Swift中提供了两种数据结构用于存放数据的集合,各自是数组(Array)和字典(Dictionary). 他们的主要差别在于数组中的元素由下标确定.而字典中的数据的值由数据的键(K ...
- Excel VBA入门(二)数组和字典
数组和字典也是VBA的常用到数据类型之一.但是我翻了有四五本VBA教程相关的书,里面都没有介绍到字典,数组到是在介绍数据类型时有介绍,而并没有提到字典. 事实上,字典不是VBA内置的类型,它是Wind ...
随机推荐
- Object类及其equals()方法
== : 1.基本数据类型:根据基本数据类型的值判断是否相等,相等返回true,反之返回false 注意:两端数据类型可以不同, 在不同的情况下,也可以返回true 2.引用数据类型:Object ...
- centos7部署ELK测试
一.背景 学习ELK,动手实验. 参考:https://blog.csdn.net/qq_33406938/article/details/80307679 二.环境 虚拟机一台,已安装jdk1.8, ...
- Java实现 LeetCode 402 移掉K位数字
402. 移掉K位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示 ...
- Java实现 LeetCode 374 猜数字大小 II
375. 猜数字大小 II 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字. 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了. 然而,当你猜 ...
- Java实现蓝桥杯日志统计
标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞" ...
- OAuth2.0系列之基本概念和运作流程(一)
@ 目录 一.OAuth2.0是什么? 1.1 OAuth2.0简介 1.2 OAuth2.0官方文档 二.OAuth2.0原理 2.1 OAuth2.0流程图 三. OAuth2.0的角色 四.OA ...
- Windows10开启Ubuntu子系统并搭建Docker环境
前言 很早就听说微软有个基于Ubuntu的子系统,一直也没机会尝试一下,之前也只是用VMware安装,但是还要单独安装软件,安装镜像,一点都不fit,所以就瞎折腾下(也是因为最近有空). 搭建Ubun ...
- SOA架构和微服务架构的区别与特点
1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件. 1.SOA(Service Or ...
- 性能测试之 JVM 概念认识
无论什么语言,在程序运行过程中,都需要对内存进行管理,要知道计算机/服务器的内存不是无限的.例如:C语言中需要对对象的内存负责,需要用delete/free来释放对象:那JAVA中,对象的内存管理是由 ...
- 基于Azure IoT开发.NET物联网应用系列-全新的Azure IoT架构
物联网技术已经火了很多年了,业界各大厂商都有各自成熟的解决方案.我们公司主要搞新能源汽车充电,充电桩就是物联网技术的最大应用,车联网.物联网.互联网三网合一.2017年的时候重点研究过Azure Io ...