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