Perl 简明教程

Perl - Data Types

Perl 是一种松散类型的语言,在程序中使用数据时无需指定类型的类型。Perl 解释器将根据数据本身的上下文选择类型。

Perl 有三种基本数据类型:标量、标量的数组和标量的散列,也称为关联数组。以下是对这些数据类型的简要说明。

Sr.No.

Types & Description

1

Scalar 标量是简单变量。它们前面带有美元符号 ($)。标量是数字、字符串或引用。引用实际上是一个变量的地址,我们将在接下来的章节中看到。

2

Arrays 数组是有序标量列表,您可以使用从 0 开始的数字索引访问它们。它们前面带有“at”符号 (@)。

3

Hashes 散列是无序键值对集,您可以使用键作为下标访问它们。它们前面带有百分号 (%)。

Numeric Literals

Perl 在内部将所有数字存储为有符号整数或双精度浮点值。数字文本使用以下浮点或整数格式中的任何一种指定 −

Type

Value

Integer

1234

Negative integer

-100

Floating point

2000

Scientific notation

16.12E14

Hexadecimal

0xffff

Octal

0577

String Literals

字符串是由字符序列构成的。它们通常是使用单引号 (') 或双引号 (") 分隔的字母数字值。它们与 UNIX shell 引号类似,您可以在其中使用单引号字符串和双引号字符串。

双引号字符串文本允许变量插值,而单引号字符串则不行。某些字符在反斜杠前面时具有特殊含义,并且用于表示换行符 (\n) 或制表符 (\t)。

您可以在双引号字符串中直接嵌入换行符或以下任何转义序列−

Escape sequence

Meaning

|Backslash

\'

Single quote

\"

Double quote

\a

Alert or bell

\b

Backspace

\f

Form feed

\n

Newline

\r

Carriage return

\t

Horizontal tab

\v

Vertical tab

\0nn

Creates Octal formatted numbers

\xnn

Creates Hexideciamal formatted numbers

\cX

控制字符,x 可以是任何字符

\u

迫使下一个字母大写

\l

迫使下一个字母小写

\U

迫使所有后续字母大写

\L

迫使所有后续字母小写

\Q

对所有后续非字母数字字符进行反斜杠转义

\E

Example

让我们再来看看字符串在单引号和双引号下的行为方式。这里,我们将使用上表中提到的字符串转义,并将利用标量变量分配字符串值。

#!/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