Perl::Critic::Policy::Bangs::ProhibitUselessRegexModifiers - Adding modifiers to a regular expression made up entirely of a variable created with qr() is usually not doing what you expect.


Perl-Critic-Bangs documentation  | view source Contained in the Perl-Critic-Bangs distribution.

Index


NAME

Top

Perl::Critic::Policy::Bangs::ProhibitUselessRegexModifiers - Adding modifiers to a regular expression made up entirely of a variable created with qr() is usually not doing what you expect.

AFFILIATION

Top

This Policy is part of the Perl::Critic::Bangs distribution.

DESCRIPTION

Top

In older versions of perl, the modifiers on regular expressions where incorrectly applied. This was fixed in 5.10, but no warnings were emitted to warn the user that they were probably not getting the effects they are looking for.

Correct:

  my $regex = qr(abc)m;
  if ( $string =~ /$regex/ ) {};

Not what you want:

  my $regex = qr(abc);
  if ( $string =~ /$regex/m ) {}; ## this triggers a violation of this policy.

See the thread that starts at: http://www.nntp.perl.org/group/perl.perl5.porters/2007/12/msg131709.html for a description of how this problem can bite the users.

And see: http://rt.perl.org/rt3//Public/Bug/Display.html?id=22354 for a description of the bug and subsequent fix.

CONFIGURATION

Top

This Policy is not configurable except for the standard options.

AUTHOR

Top

Andrew Moore <amoore@mooresystems.com>

ACKNOWLEDGMENTS

Top

Adapted from policies by Jeffrey Ryan Thalhammer <thaljef at cpan.org>, Thanks to Andy Lester, "<andy at petdance.com>" for pointing out this common problem.

COPYRIGHT

Top


Perl-Critic-Bangs documentation  | view source Contained in the Perl-Critic-Bangs distribution.