Perl语法之解析Perl变量使用

本文和大家重点讨论一下Perl语法中Perl变量的概念,Perl变量分为标量变量,数组变量,联系关系数组变量3类.Perl的变量对巨细写敏感,好比:An,AN,an是3个分歧的变量,可是分歧范例的变量可以利用统一个名字。

Perl语法简介

1.Perl变量

1.1.Perl语法中Perl变量分类

Perl变量分为标量变量,数组变量,联系关系数组变量3类.Perl的变量对巨细写敏感,好比:An,AN,an是3个分歧的变量,可是分歧范例的变量可以利用统一个名字,好比:VAR可所以一个标量变量,同时也可以有一个数组变量也是VAR.这是由于Perl对每种范例的变量接纳自力的名字空间,别的Perl的变量,可以存储任何范例的数据,无须像C那样声明变量,数据范例之间会主动转换,同时Perl变量也有全局与历程变量之分,默认是全局变量.

1.2.Perl变量

1.2.1Perl语法中Scalar变量(标量变量)

标量变量只能存放一个值.Perl中的标量变量名总以字符$开首.下面的Perl语句把9这个值赋给标量变量$nine.把"BATI"赋给标量变量$name.然后用PRINT语句打印出来.

代码如下:

$nine=9; 
$name='BATI'; 
print($name,'is',$nine);

把上述语句存为TEST01.PL文件,然后再在DOS情况下(WIN9X的MS-DOS体例也可以)运行:
C:\Perl5>PerlTEST01.PL(回车)
BATIis9(什么?很眼熟??是阿,Perl和我们常用C便是这么相似)

1.2.2Perl语法中数组变量

数组是一次可以或许存储多个变量的表.它的赋值方式如下:

@weekdays=('Sun','Mon','Tue','Wed','Thu','Fri','Sat');

print(@weekdays);#输出为:SunMonTueWedThrFriSat
print($weekdays[1]);#输出为:Sun
@work=@weekdays[1..5];#此时,数组work的值为('Mon','Tue",...,'Fri');
@none=();#暗示空数组

数组变量名以@开首,[]内是数组的下标值,下标值从0起头.这与C依然很相似.
同样的在Perl中,若是只稀有组名,而纰漏下标的话,也会像C那样输出整个输出,好比:
第一个输出语句.

但请注重在输出Sun那一句时,当我们引用数组中某一个值的时辰,我们不再利用@,而是利用$作为变量的开首,由于就单个值而言,它是一个标量变量,以是如斯(这和C可纷歧样哦)固然你还得给出下标值.
在给数组work赋值的语句中,我们用到了SLICE初始化数组,你不必体贴什么是SLICE,你只要记着这种情势就可以了,实在SLICE是表格的一部门,是官方的暗示.
对数组的赋值是多种多样的.前面我们看到的都是用值对数组赋值,同样你也可以用变量大概另一个数组的值给数组赋值,好比:

@name=($firstname,@lastname);
@say=('Hesaid',@saysomething);

以下是SLICE的例子:


代码如下:

@weekend=@weekdays[0,6];#数组weekend的值为('Sun','Sat') 
print(@weekdays[1..5,0,6]);#输出成果为'MonTueWedThuFriSunSat'

Perl还撑持一种特别机关符$#var,它是用来返回数组末了一个索引值.好比下面的语句操纵$[机关符确定命组的第一个索引值,用$#var确定命组末了的索引值,然后表现整个数组:

for($i=$[;$i<=$#buffer;$i++){print$buffer[$i];}
上面语句与print@buffer;的输出成果是一样的.

1.2.3Perl语法中标量与数组变量

表机关符(,)与挨次计值运算符(,)很是相似.是以,Perl挪用哪一个运算符取决于号令文件运行时的详细环境,即文件正在利用数组仍是标量值.Perl在数组表达式中挪用表布局符,在挨次计值中挪用计值运算符.请思量以下两个表达式:

@an_array=(1,2,3,4,5);
$a_scalar=(1,2,3,4,5);

第一个语句初始化一个数组,第二句把$a_scalar变量的值设为5,并且打消了前4个元素的赋
值感化.
再来看一个例子:


代码如下:

print$assoc{1,2}; 
@print$assoc{1,2};

第一句打印二维联系关系数组的一个元素值,而第二句打印一维数组的两个元素值.

1.2.4Perl语法中联系关系数组变量

联系关系数组变量与数组变量很相似,都可以存储标量变量的表.它们的区别在于数组变量必需经由过程整数下标来引用数组元素,而联系关系数组变量可以经由过程任何值作为下标而到达拜候数组元素的目标.联系关系数组的下标我们称之为键值(Key),是一种索引值.下面我们经由过程一个例子来明白:


代码如下:

$ages{'Bob'}=35; 
$ages{'Mary'}=25; 
$,=''; 
print@ages{'Bob','Mary'}; 
printkeys(%ages); 
for$name(keys(%ages)) 

print"$nameis$ages{$keys}\n"; 
}

法式把一个值赋给'$,'变量,如许今后的print语句的输出会受到影响,关于特别变量'$,'我们将在今后先容.Perl挪用联系关系数组变量时,利用花括号{}括起键值.

@ages{'Bob','Mary'}在花括号内给出了键值,暗示引用一个元素,此语句中有两个键值,暗示引用数组的一部门,其成果应为(35,25)与($ages{'Bob'},$ages{'Mary'})语句的成果不异.

printkeys(%ages)利用了keys运算符.其成果将返回联系关系数组的全部键值,构成一个表.%ages暗示引用整个联系关系数组.

请注重轮回语句中的print语句,在这里我们看到了在""(双引号)中插入变量的用法,这长短常有效的.在输出成果的时辰,变量将被替代成变量的值作为输出的终极成果,这便是所谓的内插法.可是Perl不许可在''(单引号)中插入变量!!!!

(0)

相关推荐

  • Perl语法之解析Perl变量使用

    本文和大家重点讨论一下Perl语法中Perl变量的概念,Perl变量分为标量变量,数组变量,联系关系数组变量3类.Perl的变量对巨细写敏感,好比:An,AN,an是3个分歧的变量,可是分歧范例的变量可以利用统一个名字. Perl语法简介 1.Perl变量 1.1.Perl语法中Perl变量分类 Perl变量分为标量变量,数组变量,联系关系数组变量3类.Perl的变量对巨细写敏感,好比:An,AN,an是3个分歧的变量,可是分歧范例的变量可以利用统一个名字,好比:VAR可所以一个标量变量,同时也

  • Perl语法中Perl运算符用法指南

    Perl语法 Perl运算符简介 1.Perl运算符 1.1 算数运算符 Perl固然在变量与数据范例都和C大不不异,然而它的运算符和C险些不异,除了C的范例转换运算符type,指针引用运算符*ptr和布局成员选择符,其他C的运算符险些完全呈现在Perl里,Perl新增了几个新运算符,好比在字符处置方面. ◆Perl到今朝撑持的算数运算符有一些几种: +加法运算符-减法运算符*乘运算符/除运算符(只对浮点数运算)%取模运算符(只对整数运算) 下面给出Perl算数运算的一些实例: $x=2.5;$

  • 手把手带你走进Go语言之语法基础解析

    目录 概述 Go 语法基础 关键字 标识符 数据类型 变量声明 多变量声明 值类型和引用类型 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 2 课) Go 语法基础 Go 程序可以由多个标记组成: 关键字 标识符 常量 字符串 符号 关键字 Go 语言有 25 个关键字: 关键字 作用 var & const 变量和常量的声明 package & import 导入 func 用于定义函数和方法 return 用于函数返回 d

  • Java 基础语法之解析 Java 的包和继承

    目录 一.包 1. 概念 2. 使用方式 3. 静态导入 4. 创建包 5. 包的访问权限 6. 常见的系统包 二.继承 1. 概念 2. 语法规则(含 super 使用) 3. protected 关键字 4. 更复杂的继承关系 5. final 关键字 三.组合 四.总结(含谜底) 一.包 1. 概念 根据定义:包是组织类的一种方式 那么为什么要组织类呢? 简单来讲就是保证类的唯一性,就比如在以后的工作中,如果大家一起开发一个项目,大家可能在自己的代码中都写到了一个 Test 类,而如果出现

  • php使用parse_str实现查询字符串解析到变量中的方法

    本文实例讲述了php使用parse_str实现查询字符串解析到变量中的方法.分享给大家供大家参考,具体如下: parse_str()函数可实现把字符串解析到变量中,这意味着实现了字符串与变量之间的一种转换机制,在与客户端数据传递的过程中,数据是通过字符串的形式传递,如GET请求,然后在服务器端通过$_GET/$_POST等全局变量实现字符串与变量的转换,如:http://www.jb51.net/?index.php?var1=1&var2=2,请求后服务端可使用$_GET['var1']的方式

  • web面试之JS预解析与变量提升区别

    目录 什么是预解析? 变量和函数预解析的区别 重复声明var变量 变量提升和函数提升优先级 函数优先级大于变量优先级的深入探究 预解析流程 搜寻预解析关键字 执行预解析 几个需要注意的细节 什么是预解析? 概念: JS代码在在代码从上往下执行前,浏览器会先把所有变量声明解析一遍, 这个阶段叫预解析. 详讲 寻找作用域中的var 和function声明(匿名函数没有function声明,所以不会提升),然后对其进行事先声明, 并把赋值操作留在原地,再从上到下执行代码.这就是一个预解析的过程. 变量

  • JavaScript预解析之变量预解析和函数预解析

    首先了解预解析之前先看两个问题 1.大家思考下  这个结果会是多少呢? console.log(num); var num=10; 结果是 undefined 2.这个输出结果又会是多少呢? fun(); var fun=function(){ console.log(22); } 显然这个结果报错了. 那究竟为什么会这样执行呢? 1.我们js引擎运行js分为两步: 预解析   代码执行 预解析 js引擎会把js里面所有的var还有function提升到当前作用域的最前面 代码执行 按照代码书写

  • 有关perl的内置特殊变量介绍

    一.正则表达式特殊变量 1.$n :包含上次模式匹配的第n个子串2.$& :前一次成功模式匹配的字符串3.$` :前次匹配成功的子串之前的内容4.$' :前次匹配成功的子串之后的内容5.$+ :前一次使用括号的模式匹配的字符串. 二.文件句柄特殊变量 1.$| :如果设置为零,在每次调用函数write或print后,自动调用函数fflush,将所写内容写回文件2.$% :当前输出页号3.$= :当前每页长度4.$- :当前页剩余的行数5.$~ :当前报表输出格式的名称.默认值是文件句柄名.6.$

  • Java try-with-resource语法使用解析

    背景 众所周知,所有被打开的系统资源,比如流.文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故. 在Java的江湖中,存在着一种名为finally的功夫,它可以保证当你习武走火入魔之时,还可以做一些自救的操作.在远古时代,处理资源关闭的代码通常写在finally块中.然而,如果你同时打开了多个资源,那么将会出现噩梦般的场景: public class Demo { public static void main(String[] arg

  • wireshark捕获过滤器语法使用解析

    目录 指定捕获过滤器 基于类型过滤 基于传输方向的过滤 基于协议过滤 基于数据过滤 使用多个捕获过滤器 使用预置表达式 指定捕获过滤器 捕获过滤器的语法格式为:<Protocol> <Direction> <Host> <Value> <Logical Operation> <other expression> 以上语法解析: ● Protocol (协议) :该选项用来指定协议.可使用的值有ether.fddi. wlan. ip.

随机推荐