In most programming languages you have a shorter form for incrementing a value
a = a + 10; // original form
a += 10; // shorter form
a = a * 10; // original form
a *= 10; // shorter form
but why you cannot write something like that:
a = a || 10; // original form
a ||= 10 // this will not work
$a = $a + 10; # original form
$a += 10; # shorter form
$a = $a * 10; # original form
$a *= 10; # shorter form
$a = $a || 10; # original form
$a ||= 10; # shorter form
$a = $a && 10; # original form
$a &&= 10; # shorter form
$a = $a + 10; # original form
$a += 10; # shorter form
$a = $a || 10; # original form
$a ||= 10; # shorter form
# It works with method calls
my @numbers = [7,2,4,9,11,3];
@numbers = @numbers.sort(); # sorts and returns new sorted array
@numbers .= sort(); # shorter form. sort and reassign
# It works for everything, even for comma
# merge hashes
my %a = a => 1, b => 2;
%a = %a, { a => 2, c => 3} # original form
%a ,= { a => 2, c => 3} # shorter form