Could someone help me to understand what the '+=
' operator means in a particular situation. The script says:
$receipts{$weather} += $receipt;
$days{$weather}++;
Could someone help me to understand what the '+=
' operator means in a particular situation. The script says:
$receipts{$weather} += $receipt;
$days{$weather}++;
Assuming $foo += $bar
, the +=
operator does the following:
$foo = $foo + $bar;
That is, increments $foo
by $bar
. Assuming $foo++
, the ++
operator does the following:
$foo = $foo + 1;
That is, increments the variable by one.
With all this said, these operators also have some hidden perl magic. For example, the +=
and ++
operator does not give an uninitialized warning where the corresponding statement would:
# $foo is undefined
$foo += 10; # no warning
$foo++; # no warning
$foo = $foo + 10 # Use of uninitialized value $foo in addition
The ++
operator also works on strings
my $foo = 'a';
$foo++;
print $foo; # prints 'b'
The ++
operator comes in two flavours, post increment and pre increment. The return value of the expression is either calculated before or after the incrementation:
$foo = 1;
print ++$foo; # prints 2
print $foo++; # prints 2, but $foo is now 3
It is adding the value of $receipt
to the value of $receipts{$weather}
and storing the result back into $receipts{$weather}
. It is the equivalent of:
$receipts{$weather} = $receipts{$weather} + $receipt
However, it may be implemented more efficiently in some cases.
See perldoc perlop:
"=" is the ordinary assignment operator.
Assignment operators work as in C. That is,
$a += 2;
is equivalent to
$a = $a + 2;
Example:
this example : int i = 2; i=i+4; and this example int i = 2; i+=4 are the same;