Perl 数据类型

Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型。

Perl 有三个基本的数据类型:标量、数组、哈希。以下是这三种数据类型的说明:

序号 类型和描述
1 标量

标量是Perl语言中最简单的一种数据类型。这种数据类型的变量可以是数字,字符串,浮点数,不作严格的区分。在使用时在变量的名字前面加上一个"$",表示是标量。例如:

$myfirst=123;     #数字123 

$mysecond="123";   #字符串123 

2 数组

数组变量以字符"@"开头,索引从0开始,如:@arr=(1,2,3)

@arr=(1,2,3)
3 哈希

哈希是一个无序的 key/value 对集合。可以使用键作为下标获取值。哈希变量以字符"%"开头。

%h=('a'=>1,'b'=>2); 

数字字面量

一、整型

PERL实际上把整数存在你的计算机中的浮点寄存器中,所以实际上被当作浮点数看待。

在多数计算机中,浮点寄存器可以存贮约16位数字,长于此的被丢弃。整数实为浮点数的特例。

整型变量及运算:

$x = 12345;
if (1217 + 116 == 1333) {
# 执行代码语句块
}

8进制和16进制数:8进制以0开始,16进制以0x开始。例如:

$var1 = 047;    # 等于十进制的39
$var2 = 0x1f; # 等于十进制的31

二、浮点数

浮点数数据如:11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03。

浮点寄存器通常不能精确地存贮浮点数,从而产生误差,在运算和比较中要特别注意。指数的范围通常为-309到+308。

实例

#!/usr/bin/perl

$value = 9.01e+21 + 0.01 - 9.01e+21;
print ("第一个值为:", $value, "\n");
$value = 9.01e+21 - 9.01e+21 + 0.01;
print ("第二个值为:", $value, "\n");

执行以上程序,输出结果为:

第一个值为:0
第二个值为:0.01

三、字符串

Perl中的字符串使用一个标量来表示,定义方式和c很像,但是在Perl里面字符串不是用0来表示结束的。

Perl双引号和单引号的区别: 双引号可以正常解析一些转义字符与变量,而单引号无法解析会原样输出。

但是用单引号定义可以使用多行文本,如下所示:

#!/usr/bin/perl

$var='这是一个使用

多行字符串文本

的例子';

print($var);

执行以上程序,输出结果为:

这是一个使用

多行字符串文本

的例子

Perl 语言中常用的一些转义字符如下表所示:

转义字符 含义
\\ 反斜线
\' 单引号
\" 双引号
\a 系统响铃
\b 退格
\f 换页符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\0nn 创建八进制格式的数字
\xnn 创建十六进制格式的数字
\cX 控制字符,x可以是任何字符
\u 强制下一个字符为大写
\l 强制下一个字符为小写
\U 强制将所有字符转换为大写
\L 强制将所有的字符转换为小写
\Q 将到\E为止的非单词(non-word)字符加上反斜线
\E 结束\L、\U、\Q

实例

接下来让我们来具体看看单引号和双引号及转义字符的使用:

实例

#!/usr/bin/perl

# 换行 \n 位于双引号内,有效
$str = "编程字典 \nwww.CodingDict.com";
print "$str\n"; # 换行 \n 位于单引号内,无效
$str = '编程字典 \nwww.CodingDict.com';
print "$str\n"; # 只有 R 会转换为大写
$str = "\uCodingDict";
print "$str\n"; # 所有的字母都会转换为大写
$str = "\UCodingDict";
print "$str\n"; # 指定部分会转换为大写
$str = "Welcome to \UCodingDict\E.com!";
print "$str\n"; # 将到\E为止的非单词(non-word)字符加上反斜线
$str = "\QWelcome to CodingDict's family";
print "$str\n";

以上实例执行输出结果为:

编程字典
www.CodingDict.com

本文转自:http://codingdict.com/article/6798

Perl 数据类型的更多相关文章

  1. Perl 数据类型:标量、数组、哈希

    Perl 数据类型Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型. Perl 有三个基本的数据类型:标量.数组.哈希.以下是这三种数据类型的说明: 序 ...

  2. Perl数据类型

    Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型. Perl 有三个基本的数据类型:标量.数组.哈希.以下是这三种数据类型的说明: 标量 标量是Perl ...

  3. ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper

    ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper 监控 master/slave 需要使用zk的临时节点 ...

  4. 4-Perl 数据类型

    1.Perl 数据类型Perl 是一种弱类型语言,所以变量不需要指定类型,Perl 解释器会根据上下文自动选择匹配类型.Perl 有三个基本的数据类型:标量.数组.哈希.以下是这三种数据类型的说明:1 ...

  5. perl学习(2) 基本数据类型等

    1.1.数字 所有数字格式内部一致,全部是double 7.25e45   == 7.25 * 1045 5.25 6.00 5.1-2.4          #5.1-2.4,2.7 10/3    ...

  6. 精通Perl(第2版)

    精通Perl(第2版)(通往Perl大师之路必读经典书籍,体现了一种编程思维,能够帮你解决很多实际的问题) [美]brian d foy(布瑞恩·D·福瓦)著   王兴宇 刘宸宇 译 ISBN 978 ...

  7. Perl 和 Python 的比较 【转】

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4662991&uid=608135 作为万年Perl 党表示最近开 ...

  8. C,C++,Lisp,Java,Perl,Python

    (译注:圣经记载:在远古的时候,人类都使用一种语言,全世界的人决定一起造一座通天的塔,就是巴别塔,后来被上帝知道了,上帝就让人们使用不同的语言,这个塔就没能造起来. 巴别塔不建自毁,与其说上帝的分化将 ...

  9. Perl 语法 - 高级特性

    总结: q().qq().qw(同单引号).qx{牢记是花括号},分别是单引号.双引号.创建字符串列表 和 捕获命令输出.   第9学时 其他函数和运算符 一件事情可以使用多种方法完成. 有哪些其他的 ...

随机推荐

  1. 第六篇 xpath的用法

    使用pycharm debug调试效率会比较慢,因为每次调试都需要向url发送请求,等返回信息,scrapy提供一种方便调试的功能,如下: >>>(third_project) bi ...

  2. Oracle中NEXTVAL 和 CURRVAL的使用

    能够通过在 SQL 语句中使用 NEXTVAL 或 CURRVAL 运算符来訪问序列的值.必须用以 sequence.NEXTVAL 或sequence.CURRVAL 格式驻留在同一个数据库中的序列 ...

  3. win7+ubuntu双系统安装

    XP+ubuntu双系统可參考 xp硬盘上安装ubuntu12.04双系统 1.XP安全不再,最终将吾等磨机的人逼上梁山,是时候做一个win7+ubuntu的双系统了. 废话少说,直接进入主题,先腾出 ...

  4. AVR446步进电机算法推导及应用

    https://blog.csdn.net/Renjiankun/article/details/80513839?utm_source=copy

  5. Django-ORM初识

    Django之ORM基础 一.ORM简介: ORM概念: 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术 ...

  6. git基础1

    git:     团队协作开发     版本管理      创建项目的文档     初始化   编写项目   把文件add到git仓库,其实是放到了git的代码暂存区   工作区有一个隐藏目录 .gi ...

  7. thinkphp 原生分页

    paginate() 是有三个参数: 第一个参数是 $listRows [int],也就是当前的页数 第二个参数是 $simple [boolean], 是否简洁模式或者总记录数 第三个参数是 $co ...

  8. 2019年12月12日英语学习-Will I Or Won't I ?For Since

    没办法,听不懂,记不住.就会一句.艹

  9. How to SSH Into Your iPhone

    First, I will explain what SSH is and why we do it. SSH (Secure Shell) allows you to exchange data b ...

  10. Python中的动态类

    Python中的动态类 有这样一个需求,我有SegmentReader.PostagReader.ConllReader这三个Reader,他们都继承于一个Reader类.在程序运行中,由用户通过se ...