Perl学习笔记 Perl变量的认识

开发 架构
本文向大家简单介绍一下Perl变量的概念,任何语言都有Perl变量,Perl变量在Perl中简单的分为标量和组数Perl变量。希望本文的介绍对你有所帮助。

本文和大家重点学习一下Perl变量的相关知识,Perl中的变量可以通过操作符(如+或.等)来产生新的变量。你可以从文件和设备中读取变量,也可以将其输出。

Perl学习笔记  Perl变量的认识

Perl标量的学习

任何语言都有Perl变量,Perl变量在Perl中简单的分为标量和组数Perl变量.

标量:表示单个的量,即英文中所说的单数.
例如:
 

  1. $name="Hello"';  
  2. $age=18;  
  3. $price=123.88;  
  4. $price=343_333_333.898;  

都是一个标量,Perl对数字标量在计算机中采用浮点数形式存贮。通常浮点数的精度是不够准确的。这点需要特别注意。

下面是一个例子:
 

  1. #!/usr/local/bin/perl  
  2. $value=9.01e+21+0.01-9.01e+21;  
  3. print("firstvalueis",$value,"\n");  
  4. $value=9.01e+21-9.01e+21+0.01;  
  5. print("secondvalueis",$value,"\n");  
  6. ---------------------------------------------------------  
  7. $program3_3  
  8. firstvalueis0  
  9. secondvalueis0.01  

 可以看到,不同的运算顺序可能导致的结果不一样!在Perl中十进制数字用0x开头表示.0开头表示一个8进制数。Perl对数学运算的操作符有:
算术操作符:+(加)、-(减)、*(乘)、/(除)、**(乘幂)、%(取余)、-(单目负)

(1)前面几个不用说了吧.说一下乘幂这里需要注册,基数不能为负数.
(2)单目负又是什么意思?他实际上就是一个负号。就是数学中的负数表示符。

Perl变量的算术比较符:

==(相等),<(小于),>(大于),!=(不等于),还有一个<=>(表示可以取三个数-1,0,1);
标量除了是一个数字,字符串之外,还可以是其它复杂类型的引用.这点请暂时记住.我将在后面详细说明这个问题.
现在来说下字符串,Perl采用unicode表示一个数值,这就意味着和java一样,可以表示世界上任何一个国家的语言文字,对于字符串的运算符有
.(相连)

比较符:lt(小于),gt(大于),ne(不等于),eq(等于),le(小于等于),ge(大于等于),需要说明的的是。字符串的运算是按Ascii来进行运算的。就是说a(Ascii值为97),A(ASCII值为65),结果就是:agtA

另一种Perl变量叫做数组Perl变量.数组大家都知道,表示一组数据的集合.数据型可以分为有序的数组和无序的列表.他通常相当于英语中的复数.还有一种叫散列.他是一种特殊的数组.用Key+value的形式来表示.相当于Java中的Map.是按键值对来存放的.
我们用$表示一个标量,用@表示一个列表和数组.用%表示一个散列.

举例说明:
@lines=("a","b","c");
这样就定义了一个数组,他里面有三个元素abc,定义数组时用()号把中间元素包扩起来.里面用,号分开,也可以写成这样:@lines=qw(abcd);
注意用qw定义时,里面不能写,号.这点请记住它!,而且qw里面只能是字符的原型,比如说,你给成这样:$a="a";@lines=qw($abcd);
将$a这个Perl变量传进来,你的目的是这样,但是我告诉你这达不到你希望的效果.
他会原封不动的给你显示出来.这也正好说明了这里不能给abcd加个双引号.

%person表示一个散列.
要对这个散列进行给值.使用$person{"name"}="Hello";
也可以使用%person=("a","b","c","d")这样的形式,我们说过,散列表示一个key/value的集合,所以perl会将这样的列表形式的数组按照key/value进行转换.每两个一组,前面是键,后面是值.

当然这样的形式并不好看.

我们还可以写成;%person=("a"=>"b","c"=>"d").
你可以直接把一个数组表示的Perl变量给一个散列.用(),你也可以把一个散列的具体值指向另一个散列.

%person{"a"}={
"name"=>"zhangsan",
"age"=>"23",
}
通过$person{"a"}{"name"}访问到zhangsan;

不仅如此,你还可以将一个散列的具体值指向一个数量.
%person{"a"}=["a1","a2","a3"];
通过$person{"a"}[0]访问到a1;

有了这样的机制我们很容易建立出类似多维数组一样的东西!好了,是不是很简单呢?

【编辑推荐】

  1. Perl变量中Perl数组概念详解
  2. 解析三大Perl变量用法
  3. Perl语言中的五大变量类型
  4. 揭秘Perl变量中Perl纯变量用法
  5. 术语汇编 Perl变量中Perl关联数组用法解析 
责任编辑:佚名 来源: javaeye.com
相关推荐

2010-07-21 14:18:27

Perl函数

2010-07-21 13:27:06

Perl模式匹配

2010-07-21 14:08:28

Perl命令行

2010-07-13 16:56:30

Perl正则表达式

2010-07-15 11:29:25

Perl格式化输出

2010-07-20 14:41:55

Perl语法

2010-07-20 10:58:39

Perl脚本

2010-07-15 18:04:20

Perl模式

2010-07-13 13:15:17

Perl

2010-07-16 17:38:12

Perl包

2010-07-16 12:50:45

Perl语言

2010-07-26 10:51:26

Perl模式匹配

2010-07-20 15:18:41

Perl基本语法

2010-07-26 17:01:03

Perl包

2010-07-13 11:25:42

Perl双引号

2010-07-19 09:08:38

Perl模块

2010-07-15 10:07:29

Perl指令

2010-07-13 15:43:57

Perl语言

2010-07-13 09:34:24

Perl纯变量

2010-07-13 09:50:55

Perl数组
点赞
收藏

51CTO技术栈公众号