- Perl 基础
- Perl - 首页
- Perl - 简介
- Perl - 环境
- Perl - 语法概述
- Perl - 数据类型
- Perl - 变量
- Perl - 标量
- Perl - 数组
- Perl - 哈希表
- Perl - IF...ELSE
- Perl - 循环
- Perl - 运算符
- Perl - 日期和时间
- Perl - 子程序
- Perl - 引用
- Perl - 格式
- Perl - 文件 I/O
- Perl - 目录
- Perl - 错误处理
- Perl - 特殊变量
- Perl - 编码规范
- Perl - 正则表达式
- Perl - 发送邮件
- Perl 高级
- Perl - 套接字编程
- Perl - 面向对象
- Perl - 数据库访问
- Perl - CGI 编程
- Perl - 包和模块
- Perl - 进程管理
- Perl - 内嵌文档
- Perl - 函数引用
- Perl 有用资源
- Perl - 问答
- Perl - 快速指南
- Perl - 有用资源
- Perl - 讨论
Perl - 数据类型
Perl 是一种弱类型语言,在程序中使用数据时无需指定类型。Perl 解释器将根据数据的上下文本身选择类型。
Perl 有三种基本数据类型:标量、标量数组和标量哈希表(也称为关联数组)。以下是关于这些数据类型的详细信息。
序号 | 类型和描述 |
---|---|
1 | 标量 标量是简单的变量。它们前面带有美元符号 ($) 。标量可以是数字、字符串或引用。引用实际上是变量的地址,我们将在接下来的章节中看到。 |
2 | 数组 数组是有序的标量列表,您可以使用从 0 开始的数字索引访问它们。它们前面带有“at”符号 (@)。 |
3 | 哈希表 哈希表是无序的键值对集合,您可以使用键作为下标来访问它们。它们前面带有百分号 (%)。 |
数字字面量
Perl 将所有数字内部存储为带符号整数或双精度浮点数。数字字面量可以用以下任何浮点数或整数格式指定:
类型 | 值 |
---|---|
整数 | 1234 |
负整数 | -100 |
浮点数 | 2000 |
科学计数法 | 16.12E14 |
十六进制 | 0xffff |
八进制 | 0577 |
字符串字面量
字符串是字符序列。它们通常是由单引号 (') 或双引号 (") 分隔的字母数字值。它们的工作方式与 UNIX shell 引号非常相似,您可以在其中使用单引号字符串和双引号字符串。
双引号字符串字面量允许变量插值,而单引号字符串则不允许。某些字符在前面带有反斜杠时具有特殊含义,它们用于表示换行符 (\n) 或制表符 (\t) 等。
您可以直接在双引号字符串中嵌入换行符或以下任何转义序列:
转义序列 | 含义 |
---|---|
\\ | 反斜杠 |
\' | 单引号 |
\" | 双引号 |
\a | 警报或铃声 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\0nn | 创建八进制格式的数字 |
\xnn | 创建十六进制格式的数字 |
\cX | 控制字符,x 可以是任何字符 |
\u | 强制下一个字符转换为大写 |
\l | 强制下一个字符转换为小写 |
\U | 强制所有后续字符转换为大写 |
\L | 强制所有后续字符转换为小写 |
\Q | 对所有后续非字母数字字符进行反斜杠转义 |
\E | 结束 \U、\L 或 \Q |
示例
让我们再次看看字符串在单引号和双引号中的行为。在这里,我们将使用上表中提到的字符串转义符,并使用标量变量来赋值字符串。
#!/usr/bin/perl # This is case of interpolation. $str = "Welcome to \ntutorialspoint.com!"; print "$str\n"; # This is case of non-interpolation. $str = 'Welcome to \ntutorialspoint.com!'; print "$str\n"; # Only W will become upper case. $str = "\uwelcome to tutorialspoint.com!"; print "$str\n"; # Whole line will become capital. $str = "\UWelcome to tutorialspoint.com!"; print "$str\n"; # A portion of line will become capital. $str = "Welcome to \Ututorialspoint\E.com!"; print "$str\n"; # Backsalash non alpha-numeric including spaces. $str = "\QWelcome to tutorialspoint's family"; print "$str\n";
这将产生以下结果:
Welcome to tutorialspoint.com! Welcome to \ntutorialspoint.com! Welcome to tutorialspoint.com! WELCOME TO TUTORIALSPOINT.COM! Welcome to TUTORIALSPOINT.com! Welcome\ to\ tutorialspoint\'s\ family
广告