Login
Make Policies comply with
authorElliot Shank <perl@galumph.com>
Fri, 22 Aug 2008 02:07:35 +0000 (02:07 +0000)
committerElliot Shank <perl@galumph.com>
Fri, 22 Aug 2008 02:07:35 +0000 (02:07 +0000)
RegularExpressions::RequireDotMatchAnything.

37 files changed:
lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm
lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm
lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm
lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm
lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm
lib/Perl/Critic/Policy/Documentation/PodSpelling.pm
lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm
lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm
lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm
lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm
lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm
lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm
lib/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm
lib/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm
lib/Perl/Critic/Policy/Modules/RequireEndWithOne.pm
lib/Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm
lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm
lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseSubs.pm
lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseVars.pm
lib/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm
lib/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm
lib/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm
lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoStrict.pm
lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEmptyQuotes.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEscapedCharacters.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitInterpolationOfLiterals.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLeadingZeros.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitVersionStrings.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/RequireInterpolationOfMetachars.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/RequireQuotedHeredocTerminator.pm
lib/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm
lib/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm
lib/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm
lib/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm

index 86f6926..1ad8b5b 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $GLOB_RX => qr{ [*?] }mx;
+Readonly::Scalar my $GLOB_RX => qr< [*?] >xms;
 Readonly::Scalar my $DESC    => q{Glob written as <...>};
 Readonly::Scalar my $EXPL    => [ 167 ];
 
index 30cd5f6..3c3d484 100644 (file)
@@ -45,7 +45,7 @@ sub applies_to       { return 'PPI::Token'        }
 
 sub violates {
     my ( $self, $elem, undef ) = @_;
-    $elem =~ m{ \t }mx || return;
+    $elem =~ m{ \t }xms || return;
 
     # The __DATA__ element is exempt
     return if $elem->parent->isa('PPI::Statement::Data');
index 646b504..6df348b 100644 (file)
@@ -76,9 +76,9 @@ sub violates {
         return if not _is_literal($child);
 
         my $string = $child->string();
-        return if $string =~ m{ \s }mx;
+        return if $string =~ m{ \s }xms;
         return if $string eq $EMPTY;
-        return if not $self->{_strict} and $string !~ m{\A [\w-]+ \z}mx;
+        return if not $self->{_strict} and $string !~ m{\A [\w-]+ \z}xms;
         $count++;
     }
 
index 5e0d4ce..8950772 100644 (file)
@@ -74,7 +74,7 @@ sub violates {
     # investigate further, but for now, this seems to do the trick.
 
     my $source = $doc->serialize();
-    $source =~ s{ \s+ \Z}{\n}mx;
+    $source =~ s{ \s+ \Z}{\n}xms;
 
     # Remove the shell fix code from the top of program, if applicable
     ## no critic(ProhibitComplexRegexes)
index 618e318..0d8b0b8 100644 (file)
@@ -33,12 +33,12 @@ sub applies_to           { return 'PPI::Structure::List' }
 
 sub violates {
     my ( $self, $elem, undef ) = @_;
-    $elem =~ m{ \n }mx || return;
+    $elem =~ m{ \n }xms || return;
 
     # Is it an assignment of some kind?
     my $sib = $elem->sprevious_sibling();
     return if !$sib;
-    $sib->isa('PPI::Token::Operator') && $sib =~ m{ = }mx || return;
+    $sib->isa('PPI::Token::Operator') && $sib =~ m{ = }xms || return;
 
     # List elements are children of an expression
     my $expr = $elem->schild(0);
index 87fa1c6..07ea3dc 100644 (file)
@@ -32,7 +32,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $POD_RX => qr{\A = (?: for|begin|end ) }mx;
+Readonly::Scalar my $POD_RX => qr{\A = (?: for|begin|end ) }xms;
 Readonly::Scalar my $DESC => q{Check the spelling in your POD};
 Readonly::Scalar my $EXPL => [148];
 
@@ -184,7 +184,7 @@ sub _run_spell_command {
     my $infh = IO::String->new( $code );
 
     my $outfh = File::Temp->new()
-      or throw_generic "Unable to create tempfile: $OS_ERROR";
+        or throw_generic "Unable to create tempfile: $OS_ERROR";
 
     my $outfile = $outfh->filename();
     my @words;
index 2a48979..2fa6859 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $PKG_RX => qr{ [[:alpha:]](?:[\w:\']*\w)? }mx;
+Readonly::Scalar my $PKG_RX => qr{ [[:alpha:]](?:[\w:\']*\w)? }xms;
 Readonly::Scalar my $DESC => q{Pod NAME does not match the package declaration};
 Readonly::Scalar my $EXPL => q{};
 
index 6108f52..c8e7b5b 100644 (file)
@@ -21,7 +21,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $POD_RX => qr{\A = (?: for|begin|end ) }mx;
+Readonly::Scalar my $POD_RX => qr{\A = (?: for|begin|end ) }xms;
 Readonly::Scalar my $DESC => q{POD before __END__};
 Readonly::Scalar my $EXPL => [139, 140];
 
index 923c3d0..0d88262 100644 (file)
@@ -203,13 +203,13 @@ sub supported_parameters {
     return (
         {
             name            => 'lib_sections',
-            description     => 'The sections to require for modules (separated by qr/\s* [|] \s*/xm).',
+            description     => 'The sections to require for modules (separated by qr/\s* [|] \s*/xms).',
             default_string  => $EMPTY,
             parser          => \&_parse_lib_sections,
         },
         {
             name            => 'script_sections',
-            description     => 'The sections to require for programs (separated by qr/\s* [|] \s*/xm).',
+            description     => 'The sections to require for programs (separated by qr/\s* [|] \s*/xms).',
             default_string  => $EMPTY,
             parser          => \&_parse_script_sections,
         },
@@ -239,7 +239,7 @@ sub applies_to       { return 'PPI::Document'          }
 sub _parse_sections {
     my $config_string = shift;
 
-    my @sections = split m{ \s* [|] \s* }mx, $config_string;
+    my @sections = split m{ \s* [|] \s* }xms, $config_string;
 
     return map { uc $_ } @sections;  # Normalize CaSe!
 }
@@ -325,7 +325,7 @@ sub violates {
 
     # Round up the names of all the =head1 sections
     for my $pod ( @{ $pods_ref } ) {
-        for my $found ( $pod =~ m{ ^ =head1 \s+ ( .+? ) \s* $ }gmx ) {
+        for my $found ( $pod =~ m{ ^ =head1 \s+ ( .+? ) \s* $ }gxms ) {
             #Leading/trailing whitespace is already removed
             $found_sections{ uc $found } = 1;
         }
index 6f340a4..ddec3b9 100644 (file)
@@ -43,7 +43,7 @@ sub violates {
     return if !$first_token;
 
     if ( $first_token->isa('PPI::Token::Word') ) {
-        if ( ($first_token ne 'my') && ($first_token !~ m/^STD(?:IN|OUT|ERR)$/mx ) ) {
+        if ( ($first_token ne 'my') && ($first_token !~ m/^STD(?:IN|OUT|ERR)$/xms ) ) {
             return $self->violation( $DESC, $EXPL, $elem );
         }
     }
index b9ec3b8..4888071 100644 (file)
@@ -22,7 +22,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $STDIO_HANDLES_RX => qr/\b STD (?: IN | OUT | ERR \b)/mx;
+Readonly::Scalar my $STDIO_HANDLES_RX => qr/\b STD (?: IN | OUT | ERR \b)/xms;
 Readonly::Scalar my $DESC => q{Two-argument "open" used};
 Readonly::Scalar my $EXPL => [ 207 ];
 
index 1e0dae3..057c378 100644 (file)
@@ -59,7 +59,7 @@ sub violates {
     return if !$sib[2];
 
     # First token must be a scalar symbol or bareword;
-    return if !( ($sib[0]->isa('PPI::Token::Symbol') && $sib[0] =~ m/\A \$/mx)
+    return if !( ($sib[0]->isa('PPI::Token::Symbol') && $sib[0] =~ m/\A \$/xms)
                  || $sib[0]->isa('PPI::Token::Word') );
 
     # First token must not be a builtin function or control
index a568760..5335d50 100644 (file)
@@ -50,7 +50,7 @@ sub _uses_exporter {
     my $includes_ref = $doc->find('PPI::Statement::Include');
     return if !$includes_ref;
     #This covers both C<use Exporter;> and C<use base 'Exporter';>
-    return scalar grep { m/ \b Exporter \b/mx }  @{ $includes_ref };
+    return scalar grep { m/ \b Exporter \b/xms }  @{ $includes_ref };
 }
 
 #------------------
@@ -76,7 +76,7 @@ sub _vars_EXPORT {
     my (undef, $elem) = @_;
     $elem->isa('PPI::Statement::Include') || return 0;
     $elem->pragma() eq 'vars' || return 0;
-    return $elem =~ m{ \@EXPORT \b }mx; #Crude, but usually works
+    return $elem =~ m{ \@EXPORT \b }xms; #Crude, but usually works
 }
 
 #------------------
@@ -84,7 +84,7 @@ sub _vars_EXPORT {
 sub _package_EXPORT {
     my (undef, $elem) = @_;
     $elem->isa('PPI::Token::Symbol') || return 0;
-    return $elem =~ m{ \A \@ \S+ ::EXPORT \z }mx;
+    return $elem =~ m{ \A \@ \S+ ::EXPORT \z }xms;
     #TODO: ensure that it is in _this_ package!
 }
 
index 96cdb6a..8bbb844 100644 (file)
@@ -58,11 +58,11 @@ sub initialize_if_enabled {
     if ( defined $self->{_modules} ) {
         my @modules = sort keys %{ $self->{_modules} };
         foreach my $module ( @modules ) {
-            if ( $module =~ m{ \A [/] (.+) [/] \z }mx ) {
+            if ( $module =~ m{ \A [/] (.+) [/] \z }xms ) {
 
                 # These are module name patterns (e.g. /Acme/)
                 my $re = $1; # Untainting
-                my $pattern = eval { qr/$re/ };  ##no critic (RegularExpressions::.*)
+                my $pattern = eval { qr/$re/ };  ## no critic (RegularExpressions::.*)
 
                 if ( $EVAL_ERROR ) {
                     throw_policy_value
index 4d0846d..31b1ca3 100644 (file)
@@ -40,7 +40,7 @@ sub violates {
     my $match = $significant[-1];
     return if !$match;
     return if ((ref $match) eq 'PPI::Statement' &&
-               $match =~  m{\A 1 \s* ; \z}mx );
+               $match =~  m{\A 1 \s* ; \z}xms );
 
     # Must be a violation...
     return $self->violation( $DESC, $EXPL, $match );
index 94c421a..ffa39c9 100644 (file)
@@ -42,7 +42,7 @@ sub violates {
     # 'lib/Foo/Bar.pm' -> ('lib', 'Foo', 'Bar')
     my @path = File::Spec->splitpath($filename);
     $filename = $path[2];
-    $filename =~ s/[.]\w+\z//mx;
+    $filename =~ s/[.]\w+\z//xms;
     my @path_parts = grep {$_ ne q{}} File::Spec->splitdir($path[1]), $filename;
 
     # 'Foo::Bar' -> ('Foo', 'Bar')
@@ -50,7 +50,7 @@ sub violates {
     return if !$pkg_node;
     my $pkg = $pkg_node->namespace;
     return if $pkg eq 'main';
-    my @pkg_parts = split m/(?:\'|::)/mx, $pkg;
+    my @pkg_parts = split m/(?:\'|::)/xms, $pkg;
 
     # To succeed, at least the lastmost must match
     # Beyond that, the search terminates if a dirname is an impossible package name
@@ -64,7 +64,7 @@ sub violates {
         }
 
         # if it's a path that's not a possible package (like 'Foo-Bar-1.00'), that's OK
-        last if ($path_part =~ m/\W/mx);
+        last if ($path_part =~ m/\W/xms);
 
         # Mismatched name
         return $self->violation( $DESC, $EXPL, $pkg_node );
index 0cbb42a..51f9777 100644 (file)
@@ -67,7 +67,7 @@ sub _is_vars_VERSION {
     my (undef, $elem) = @_;
     $elem->isa('PPI::Statement::Include') || return 0;
     $elem->pragma() eq 'vars' || return 0;
-    return $elem =~ m{ \$VERSION }mx; #Crude, but usually works
+    return $elem =~ m{ \$VERSION }xms; #Crude, but usually works
 }
 
 #-----------------------------------------------------------------------------
@@ -75,7 +75,7 @@ sub _is_vars_VERSION {
 sub _is_package_VERSION {
     my (undef, $elem) = @_;
     $elem->isa('PPI::Token::Symbol') || return 0;
-    return $elem =~ m{ \A \$ \S+ ::VERSION \z }mx;
+    return $elem =~ m{ \A \$ \S+ ::VERSION \z }xms;
     #TODO: ensure that it is in _this_ package!
 }
 
@@ -92,7 +92,7 @@ sub _is_readonly_VERSION {
 
     my (undef, $elem) = @_;
     $elem->isa('PPI::Token::Symbol') || return 0;
-    return 0 if $elem !~ m{ \A \$VERSION \z }mx;
+    return 0 if $elem !~ m{ \A \$VERSION \z }xms;
 
     my $psib = $elem->sprevious_sibling() || return 0;
     return 0 if $psib ne 'our';
@@ -135,6 +135,7 @@ have to declare it like one of these:
     our $VERSION = 1.0611;
     $MyPackage::VERSION = 1.061;
     use vars qw($VERSION);
+    use version; our $VERSION = qv(1.0611);
 
 A common practice is to use the C<$Revision$> keyword to
 automatically define the C<$VERSION> variable like this:
index d2d2934..edee9fe 100644 (file)
@@ -20,9 +20,9 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $UPPER_LOWER    => qr/ [[:upper:]] [[:lower:]] /xm;
-Readonly::Scalar my $LOWER_UPPER    => qr/ [[:lower:]] [[:upper:]] /xm;
-Readonly::Scalar my $MIXED_RX       => qr{ $UPPER_LOWER | $LOWER_UPPER }xmo;
+Readonly::Scalar my $UPPER_LOWER    => qr/ [[:upper:]] [[:lower:]] /xms;
+Readonly::Scalar my $LOWER_UPPER    => qr/ [[:lower:]] [[:upper:]] /xms;
+Readonly::Scalar my $MIXED_RX       => qr{ $UPPER_LOWER | $LOWER_UPPER }xmso;
 Readonly::Scalar my $DESC     => 'Mixed-case subroutine name';
 Readonly::Scalar my $EXPL     => [ 44 ];
 
@@ -37,7 +37,7 @@ sub applies_to           { return 'PPI::Statement::Sub'   }
 
 sub violates {
     my ( $self, $elem, undef ) = @_;
-    (my $name = $elem->name() ) =~ s/\A.*:://mx;
+    (my $name = $elem->name() ) =~ s/\A.*:://xms;
     if ( $name =~ m/$MIXED_RX/xms ) {
         return $self->violation( $DESC, $EXPL, $elem );
     }
index 3d3a630..01699f0 100644 (file)
@@ -10,6 +10,7 @@ package Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars;
 use 5.006001;
 use strict;
 use warnings;
+
 use Readonly;
 
 use Perl::Critic::Utils qw{ :severities };
@@ -20,10 +21,10 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $PACKAGE_RX     => qr/ :: /mx;
-Readonly::Scalar my $UPPER_LOWER    => qr/ [[:upper:]] [[:lower:]] /xm;
-Readonly::Scalar my $LOWER_UPPER    => qr/ [[:lower:]] [[:upper:]] /xm;
-Readonly::Scalar my $MIXED_RX       => qr{ $UPPER_LOWER | $LOWER_UPPER }xmo;
+Readonly::Scalar my $PACKAGE_RX     => qr/ :: /xms;
+Readonly::Scalar my $UPPER_LOWER    => qr/ [[:upper:]] [[:lower:]] /xms;
+Readonly::Scalar my $LOWER_UPPER    => qr/ [[:lower:]] [[:upper:]] /xms;
+Readonly::Scalar my $MIXED_RX       => qr{ $UPPER_LOWER | $LOWER_UPPER }xmso;
 Readonly::Scalar my $DESC       => 'Mixed-case variable name(s)';
 Readonly::Scalar my $EXPL       => [ 44 ];
 
index 8155a42..be981bf 100644 (file)
@@ -33,7 +33,7 @@ sub applies_to           { return 'PPI::Token::Magic'      }
 
 sub violates {
     my ($self, $elem, $doc) = @_;
-    return if $elem !~ m/\A \$[1-9] \z/mx;
+    return if $elem !~ m/\A \$[1-9] \z/xms;
     return if _is_in_conditional_expression($elem);
     return if _is_in_conditional_structure($elem);
     return $self->violation( $DESC, $EXPL, $elem );
index c20825a..cd6144c 100644 (file)
@@ -66,7 +66,7 @@ sub violates {
        $qr =~ s/\A [(][?][xism]+(?:-[xism]+)?: (.*) [)] \z/$1/xms;
 
        # Hack: don't count long \p{...} expressions against us so badly
-       $qr =~ s/\\[pP][{]\w+[}]/\\p{...}/gmx;
+       $qr =~ s/\\[pP][{]\w+[}]/\\p{...}/gxms;
 
        return if $self->{_max_characters} >= length $qr;
     }
index f71a954..1d07b3c 100644 (file)
@@ -44,7 +44,7 @@ sub violates {
         return if $psib->isa('PPI::Token::Cast') && $psib eq q{\\};
     }
 
-    return if ( $elem !~ m{\A [&] }mx ); # ok
+    return if ( $elem !~ m{\A [&] }xms ); # ok
 
     my $previous = $elem->sprevious_sibling();
     return if $previous and $EXEMPTIONS{$previous};
index ee89a36..fbb7d2a 100644 (file)
@@ -50,7 +50,7 @@ sub _parse_allow {
 
     if( defined $config_string ) {
         my $allowed = lc $config_string; #String of words
-        my %allowed = hashify( $allowed =~ m/ (\w+) /gmx );
+        my %allowed = hashify( $allowed =~ m/ (\w+) /gxms );
         $self->{_allow} = \%allowed;
     }
 
@@ -77,7 +77,7 @@ sub violates {
 
     my $stmnt = $elem->statement();
     return if !$stmnt;
-    my @words = $stmnt =~ m/ ([[:lower:]]+) /gmx;
+    my @words = $stmnt =~ m/ ([[:lower:]]+) /gxms;
     @words = grep { $_ ne 'qw' && $_ ne 'no' && $_ ne 'strict' } @words;
     return if all { exists $self->{_allow}->{$_} } @words;
 
index c93be26..29a228e 100644 (file)
@@ -57,7 +57,7 @@ sub _parse_allow {
 
     if( defined $config_string ) {
         my $allowed = lc $config_string; #String of words
-        my %allowed = hashify( $allowed =~ m/ (\w+) /gmx );
+        my %allowed = hashify( $allowed =~ m/ (\w+) /gxms );
 
         $self->{_allow} = \%allowed;
     }
@@ -86,7 +86,7 @@ sub violates {
 
     my $statement = $elem->statement();
     return if not $statement;
-    my @words = $statement =~ m/ ( [[:lower:]]+ ) /gmx;
+    my @words = $statement =~ m/ ( [[:lower:]]+ ) /gxms;
     @words = grep { $_ ne 'qw' && $_ ne 'no' && $_ ne 'warnings' } @words;
 
     return if $self->{_allow_with_category_restriction} and @words;
index 3a8bfc1..ccfb15b 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $EMPTY_RX => qr{\A ["|'] \s* ['|"] \z}mx;
+Readonly::Scalar my $EMPTY_RX => qr{\A ["|'] \s* ['|"] \z}xms;
 Readonly::Scalar my $DESC     => q{Quotes used with an empty string};
 Readonly::Scalar my $EXPL     => [ 53 ];
 
index 9ef5b7d..81b85ff 100644 (file)
@@ -35,11 +35,11 @@ sub applies_to           { return qw(PPI::Token::Quote::Double
 sub violates {
     my ( $self, $elem, undef ) = @_;
 
-    my $not_escaped = qr/(?<!\\)(?:\\\\)*/mx;
-    my $hex         = qr/\\x[\dA-Fa-f]{2}/mx;
-    my $widehex     = qr/\\x[{][\dA-Fa-f]+[}]/mx;
-    my $oct         = qr/\\[01][0-7]/mx;
-    if ($elem->content =~ m/$not_escaped (?:$hex|$widehex|$oct)/mxo) {
+    my $not_escaped = qr/(?<!\\)(?:\\\\)*/xms;
+    my $hex         = qr/\\x[\dA-Fa-f]{2}/xms;
+    my $widehex     = qr/\\x[{][\dA-Fa-f]+[}]/xms;
+    my $oct         = qr/\\[01][0-7]/xms;
+    if ($elem->content =~ m/$not_escaped (?:$hex|$widehex|$oct)/xmso) {
         return $self->violation( $DESC, $EXPL, $elem );
     }
     return;    #ok!
index b9d011f..12c1981 100644 (file)
@@ -63,7 +63,7 @@ sub _parse_allow {
         @allow = words_from_string( $config_string );
         #Try to be forgiving with the configuration...
         for (@allow) {
-            m{ \A qq }mx || ($_ = 'qq' . $_)
+            m{ \A qq }xms || ($_ = 'qq' . $_)
         }  #Add 'qq'
         for (@allow) {
             (length $_ <= $MAX_SPECIFICATION_LENGTH) || chop
@@ -84,7 +84,7 @@ sub violates {
     return if _has_interpolation($elem);
 
     # Overlook allowed quote styles
-    return if any { $elem =~ m{ \A \Q$_\E }mx } @{ $self->{_allow} };
+    return if any { $elem =~ m{ \A \Q$_\E }xms } @{ $self->{_allow} };
 
     # If the flag is set, allow "I'm here".
     if ( $self->{_allow_if_string_contains_single_quote} ) {
@@ -99,8 +99,8 @@ sub violates {
 
 sub _has_interpolation {
     my $elem = shift;
-    return $elem =~ m{ (?<!\\) [\$\@] \S+ }mx     #Contains unescaped $. or @.
-        || $elem =~ m{ \\[tnrfbae0xcNLuLUEQ] }mx; #Containts escaped metachars
+    return $elem =~ m{ (?<!\\) [\$\@] \S+ }xms     #Contains unescaped $. or @.
+        || $elem =~ m{ \\[tnrfbae0xcNLuLUEQ] }xms; #Containts escaped metachars
 }
 
 1;
index 25aac05..dc1afda 100644 (file)
@@ -20,7 +20,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $LEADING_RX => qr<\A [+-]? (?: 0+ _* )+ [1-9]>mx;
+Readonly::Scalar my $LEADING_RX => qr<\A [+-]? (?: 0+ _* )+ [1-9]>xms;
 Readonly::Scalar my $EXPL       => [ 58 ];
 
 #-----------------------------------------------------------------------------
index 05d0ca2..c03db95 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $NOISE_RX => qr{\A ["|']  [^ \w () {} [\] <> ]{1,2}  ['|"] \z}mx;
+Readonly::Scalar my $NOISE_RX => qr{\A ["|']  [^ \w () {} [\] <> ]{1,2}  ['|"] \z}xms;
 Readonly::Scalar my $DESC     => q{Quotes used with a noisy string};
 Readonly::Scalar my $EXPL     => [ 53 ];
 
index 48f61fb..e668b2d 100644 (file)
@@ -40,13 +40,13 @@ sub violates {
         )
         and $elem->module ne 'lib'
     ) {
-        #This is a pretty crude way to verify that a version string is
-        #being used.  But there are several permutations of the syntax
-        #for C<use> and C<require>.  Also PPI doesn't parses strings
-        #like "5.6.1" as an integer that is being concatenated to a
-        #float.  I'm not sure if this should be reported as a bug.
+        # This is a pretty crude way to verify that a version string is
+        # being used.  But there are several permutations of the syntax
+        # for C<use> and C<require>.  Also PPI doesn't parses strings
+        # like "5.6.1" as an integer that is being concatenated to a
+        # float.  I'm not sure if this should be reported as a bug.
 
-        if ( $elem =~ m{ \b v? \d+ [.] \d+ [.] \d+ \b }mx ) {
+        if ( $elem =~ m{ \b v? \d+ [.] \d+ [.] \d+ \b }xms ) {
             return $self->violation( $DESC, $EXPL, $elem );
         }
     }
index 9278cf5..b52caef 100644 (file)
@@ -77,8 +77,8 @@ sub violates {
 sub _needs_interpolation {
     my ($string) = @_;
 
-    return $string =~ m{ [\$\@] \S+ }mxo             #Contains a $ or @
-        || $string =~ m{ \\[tnrfae0xcNLuLUEQ] }mxo;  #Contains metachars
+    return $string =~ m{ [\$\@] \S+ }xmso             #Contains a $ or @
+        || $string =~ m{ \\[tnrfae0xcNLuLUEQ] }xmso;  #Contains metachars
 }
 
 #-----------------------------------------------------------------------------
@@ -86,7 +86,7 @@ sub _needs_interpolation {
 sub _looks_like_email_address {
     my ($string) = @_;
 
-    return $string =~ m{\A [^\@\s]+ \@ [\w\-.]+ \z}mxo;
+    return $string =~ m{\A [^\@\s]+ \@ [\w\-.]+ \z}xmso;
 }
 
 #-----------------------------------------------------------------------------
index 84c3e61..e47b240 100644 (file)
@@ -48,7 +48,7 @@ sub violates {
     my ( $self, $elem, undef ) = @_;
     my $min = $self->{_min_value};
 
-    return if $elem !~ m{ \d{4} }mx;
+    return if $elem !~ m{ \d{4} }xms;
     return if abs $elem->literal() < $min;
 
     return $self->violation( $DESC, $EXPL, $elem );
index 48d49ea..80b80e1 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $HEREDOC_RX => qr/ \A << \s* ["|'] .* ['|"] \z /mx;
+Readonly::Scalar my $HEREDOC_RX => qr/ \A << \s* ["|'] .* ['|"] \z /xms;
 Readonly::Scalar my $DESC       => q{Heredoc terminator must be quoted};
 Readonly::Scalar my $EXPL       => [ 64 ];
 
index 2a0cb77..119ae42 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $HEREDOC_RX => qr{ \A << \s* (["|']?) [[:upper:]_] [[:upper:]\d_]* \1 \z }mx;
+Readonly::Scalar my $HEREDOC_RX => qr{ \A << \s* (["|']?) [[:upper:]_] [[:upper:]\d_]* \1 \z }xms;
 Readonly::Scalar my $DESC       => q{Heredoc terminator not alphanumeric and upper-case};
 Readonly::Scalar my $EXPL       => [ 64 ];
 
index 6ddd0ee..165d13e 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $PACKAGE_RX => qr/::/mx;
+Readonly::Scalar my $PACKAGE_RX => qr/::/xms;
 Readonly::Scalar my $DESC => q{Variable declared as "local"};
 Readonly::Scalar my $EXPL => [ 77, 78, 79 ];
 
index c5def97..0e4cdcd 100644 (file)
@@ -90,7 +90,7 @@ sub _is_package_var {
     my $self = shift;
     my $elem = shift;
     return if !$elem->isa('PPI::Token::Symbol');
-    my ($package, $name) = $elem =~ m{ \A [@\$%] (.*) :: (\w+) \z }mx;
+    my ($package, $name) = $elem =~ m{ \A [@\$%] (.*) :: (\w+) \z }xms;
     return if not defined $package;
     return if _all_upcase( $name );
     return if $self->{_all_packages}->{$package};
@@ -120,7 +120,7 @@ sub _is_vars_pragma {
     # pass arguments to pragmas (e.g. "$foo" or qw($foo) ) we just use
     # a regex to match things that look like variables names.
 
-    my @varnames = $elem =~ m{ [@\$%&] (\w+) }gmx;
+    my @varnames = $elem =~ m{ [@\$%&] (\w+) }gxms;
 
     return if !@varnames;   # no valid variables specified
     return if _all_upcase( @varnames );
index 1125662..593ec7b 100644 (file)
@@ -19,7 +19,7 @@ our $VERSION = '1.090';
 
 #-----------------------------------------------------------------------------
 
-Readonly::Scalar my $PACKAGE_RX => qr/::/mx;
+Readonly::Scalar my $PACKAGE_RX => qr/::/xms;
 Readonly::Hash   my %EXCEPTIONS => hashify(qw(
     $_
     $ARG