Perl::Critic::Policy::Variables::ProhibitAugmentedAssignmentInDeclaration − Do not write " my $foo .= 'bar'; ".
This Policy is part of the core Perl::Critic distribution.
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 it's encountered
Such constructs are usually the result of botched cut-and-paste, and often are bugs. Some produce warnings.
This Policy is not configurable except for the standard options.
Copyright (c) 2011 Mike O’Regan. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module.