标量
标量是 Perl 最基本的数据类型。它们用 sigil $
标记并保持三种类型之一的单个值:
- 一个数字 (
3
,42
,3.141
等) - 一串 (
'hi'
,abc
等) - **** 对变量的引用 (参见其他示例)。
my $integer = 3; # number
my $string = "Hello World"; # string
my $reference = \$string; # reference to $string
Perl 根据特定运算符的期望,在数字和字符串之间进行转换。
my $number = '41'; # string '41'
my $meaning = $number + 1; # number 42
my $sadness = '20 apples'; # string '20 apples'
my $danger = $sadness * 2; # number '40', raises warning
将字符串转换为数字时,Perl 会从字符串前面获取尽可能多的数字 - 因此 20 apples
会在最后一行转换为 20
。
根据你是要将标量的内容视为字符串还是数字,你需要使用不同的运算符。不要混合它们。
# String comparison # Number comparison
'Potato' eq 'Potato'; 42 == 42;
'Potato' ne 'Pomato'; 42 != 24;
'Camel' lt 'Potato'; 41 < 42;
'Zombie' gt 'Potato'; 43 > 42;
# String concatenation # Number summation
'Banana' . 'phone'; 23 + 19;
# String repetition # Number multiplication
'nan' x 3; 6 * 7;
试图对数字使用字符串操作不会引发警告; 尝试对非数字字符串使用数字操作。请注意,一些非数字字符串,如'inf'
,'nan'
,'0 but true'
计为数字。