标量

标量是 Perl 最基本的数据类型。它们用 sigil $ 标记并保持三种类型之一的单个值:

  • 一个数字3423.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'计为数字。