'+ ='运算符的含义

joe*_*esh -6 perl

有人可以帮我理解' +='运算符在特定情况下的含义.该剧本说:

$receipts{$weather} += $receipt;
$days{$weather}++;
Run Code Online (Sandbox Code Playgroud)

TLP*_*TLP 10

假设$foo += $bar,+=运营商执行以下操作:

$foo = $foo + $bar;
Run Code Online (Sandbox Code Playgroud)

也就是说,递增$foo$bar.假设$foo++,++运营商执行以下操作:

$foo = $foo + 1;
Run Code Online (Sandbox Code Playgroud)

也就是说,将变量递增1.

尽管如此,这些运算符还有一些隐藏的perl魔法.例如,+=++运算符不会给出未初始化的警告,其中相应的语句将:

# $foo is undefined
$foo += 10;        # no warning
$foo++;            # no warning
$foo = $foo + 10   # Use of uninitialized value $foo in addition
Run Code Online (Sandbox Code Playgroud)

++操作也适用于字符串

my $foo = 'a';
$foo++;
print $foo;     # prints 'b'
Run Code Online (Sandbox Code Playgroud)

++操作有两种版本,后增量和前增量.表达式的返回值是在递增之前或之后计算的:

$foo = 1;
print ++$foo;   # prints 2
print $foo++;   # prints 2, but $foo is now 3
Run Code Online (Sandbox Code Playgroud)