Variable declarations that also do initialization with = are common.
Perl also allows you to use operators like .=, +=, etc., but it
it is more clear to not do so.
my $foo .= bar; # same as my $foo = bar;
our $foo *= 2; # same as our $foo = 0;
my ( $foo, $bar ) += ( 1, 2 ); # same as my ( $foo, $bar ) = ( undef, 2 );
local $Carp::CarpLevel += 1; # same as local $Carp::CarpLevel = 1;
state $foo += 2; # adds 2 every time its encountered
Such constructs are usually the result of botched cut-and-paste, and often are
bugs. Some produce warnings.