Login
Make rest of code comply with
authorElliot Shank <perl@galumph.com>
Fri, 22 Aug 2008 02:24:50 +0000 (02:24 +0000)
committerElliot Shank <perl@galumph.com>
Fri, 22 Aug 2008 02:24:50 +0000 (02:24 +0000)
RegularExpressions::RequireDotMatchAnything.

bin/perlcritic
lib/Perl/Critic.pm
lib/Perl/Critic/Config.pm
lib/Perl/Critic/Statistics.pm
lib/Perl/Critic/TestUtils.pm
lib/Perl/Critic/Theme.pm
lib/Perl/Critic/UserProfile.pm
lib/Perl/Critic/Utils.pm
lib/Perl/Critic/Utils/PPIRegexp.pm

index 73cf8c0..356e65f 100755 (executable)
@@ -102,7 +102,7 @@ sub get_options {
 
     #Override profile, if --noprofile is specified
     if ( exists $opts{noprofile} ) {
-        $opts{profile} = q{};
+        $opts{profile} = $EMPTY;
     }
 
     # I've adopted the convention of using key-value pairs for
@@ -142,14 +142,14 @@ sub _dispatch_special_requests {
 
 sub _validate_options {
     my (%opts) = @_;
-    my $msg = q{};
+    my $msg = $EMPTY;
 
 
     if ( $opts{noprofile} && $opts{profile} ) {
         $msg .= qq{Warning: Cannot use -noprofile with -profile option.\n};
     }
 
-    if ( $opts{verbose} && $opts{verbose} !~ m{(?: \d+ | %[mfFlcedrpPs] )}mx) {
+    if ( $opts{verbose} && $opts{verbose} !~ m{(?: \d+ | %[mfFlcedrpPs] )}xms) {
         $msg .= qq<Warning: --verbose arg "$opts{verbose}" looks odd.  >;
         $msg .= qq<Perhaps you meant to say "--verbose 3 $opts{verbose}"\n>;
     }
@@ -194,10 +194,10 @@ sub get_input {
 
         # Notice if STDIN was closed (pipe error, etc)
         if ( ! defined $code_string ) {
-            $code_string = q{};
+            $code_string = $EMPTY;
         }
 
-        $code_string =~ m{ \S+ }mx || die qq{Nothing to critique.\n};
+        $code_string =~ m{ \S+ }xms || die qq{Nothing to critique.\n};
         return \$code_string;    #Convert to SCALAR ref for PPI
     }
     else {
@@ -305,7 +305,7 @@ sub render_report {
             ? $DEFAULT_VERBOSITY_WITH_FILE_NAME
             : $verbosity;
     my $fmt = Perl::Critic::Utils::verbosity_to_format( $verbosity );
-    if (not -f $file) { $fmt =~ s{\%[fF]}{STDIN}mx; } #HACK!
+    if (not -f $file) { $fmt =~ s< \%[fF] ><STDIN>xms; } #HACK!
     Perl::Critic::Violation::set_format( $fmt );
 
     my $color = $critic->config->color();
@@ -486,7 +486,7 @@ sub _colorize {
 #-----------------------------------------------------------------------------
 
 sub _this_is_windows {
-    return 1 if $OSNAME =~ m/MSWin32/mx;
+    return 1 if $OSNAME =~ m/MSWin32/xms;
     return 0;
 }
 
@@ -546,7 +546,7 @@ sub policy_docs {
 
     my %pc_params = (-profile => $EMPTY, -severity => $SEVERITY_LOWEST);
     my @policies  = Perl::Critic::Config->new( %pc_params )->policies();
-    my @matches   = grep { $_ =~ m/$pattern/imx } @policies;
+    my @matches   = grep { $_ =~ m/$pattern/ixms } @policies;
 
     for my $matching_policy ( @matches ) {
         my @perldoc_cmd = qw(perldoc -T); #-T means don't send to pager
@@ -640,7 +640,7 @@ examples to help get you started.
     # Report top 20 most severe violations (severity >= 1)
     perlcritic --top YourModule.pm
 
-    # Report additional violations of Policies that match m/variables/ix
+    # Report additional violations of Policies that match m/variables/xms
     perlcritic --include variables YourModule.pm
 
     # Use defaults from somewhere other than ~/.perlcriticrc
@@ -772,7 +772,7 @@ F<.perlcriticrc> file.
 =item C<-s PATTERN>
 
 Directs C<perlcritic> to apply just one Policy module matching the
-regex C</PATTERN/imx>, and exclude all other Policies.  This option
+regex C</PATTERN/ixms>, and exclude all other Policies.  This option
 has precedence over the C<--severity>, C<--theme>, C<--include>,
 C<--exclude>, and C<--only> options.  For example:
 
@@ -947,7 +947,7 @@ manually.
 
 Displays the perldoc for all
 L<Perl::Critic::Policy|Perl::Critic::Policy> modules that match
-C<m/PATTERN/imx>.  Since Policy modules tend to have rather long
+C<m/PATTERN/ixms>.  Since Policy modules tend to have rather long
 names, this just provides a more convenient way to say something like:
 C<"perldoc Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator">
 at the command prompt.
@@ -1128,7 +1128,7 @@ They are described briefly in the companion document
 L<Perl::Critic::PolicySummary|Perl::Critic::PolicySummary> and in more
 detail in the individual modules themselves.  Say C<"perlcritic --doc
 PATTERN"> to see the perldoc for all Policy modules that match the
-regex C<m/PATTERN/imx>
+regex C<m/PATTERN/ixms>
 
 There are a number of distributions of additional policies on CPAN.
 If L<Perl::Critic|Perl::Critic> doesn't contain a policy that you
index 1ce90f7..500bcff 100644 (file)
@@ -248,7 +248,7 @@ sub _filter_code {
 sub _filter_shebang_line {
     my ($nodes_ref, $disabled_lines, $site_policies) = @_;
 
-    my $shebang_no_critic  = qr{\A [#]! .*? [#][#] \s* no  \s+ critic}mx;
+    my $shebang_no_critic  = qr{\A [#]! .*? [#][#] \s* no  \s+ critic}xms;
 
     # Special case for the very beginning of the file: allow "##no critic" after the shebang
     if (0 < @{$nodes_ref}) {
@@ -266,8 +266,8 @@ sub _filter_shebang_line {
 sub _filter_other_lines {
     my ($nodes_ref, $disabled_lines, $site_policies) = @_;
 
-    my $no_critic  = qr{\A \s* [#][#] \s* no  \s+ critic}mx;
-    my $use_critic = qr{\A \s* [#][#] \s* use \s+ critic}mx;
+    my $no_critic  = qr{\A \s* [#][#] \s* no  \s+ critic}xms;
+    my $use_critic = qr{\A \s* [#][#] \s* use \s+ critic}xms;
 
   PRAGMA:
     for my $pragma ( grep { $_ =~ $no_critic } @{$nodes_ref} ) {
@@ -344,11 +344,11 @@ sub _parse_nocritic_import {
 
     my ($pragma, $site_policies) = @_;
 
-    my $module    = qr{ [\w:]+ }mx;
-    my $delim     = qr{ \s* [,\s] \s* }mx;
-    my $qw        = qr{ (?: qw )? }mx;
-    my $qualifier = qr{ $qw [(]? \s* ( $module (?: $delim $module)* ) \s* [)]? }mx;
-    my $no_critic = qr{ \#\# \s* no \s+ critic \s* $qualifier }mx;  ##no critic(EscapedMetacharacters)
+    my $module    = qr{ [\w:]+ }xms;
+    my $delim     = qr{ \s* [,\s] \s* }xms;
+    my $qw        = qr{ (?: qw )? }xms;
+    my $qualifier = qr{ $qw [(]? \s* ( $module (?: $delim $module)* ) \s* [)]? }xms;
+    my $no_critic = qr{ \#\# \s* no \s+ critic \s* $qualifier }xms;  ##no critic(EscapedMetacharacters)
 
     if ( my ($module_list) = $pragma =~ $no_critic ) {
         my @modules = split $delim, $module_list;
@@ -357,7 +357,7 @@ sub _parse_nocritic_import {
         # in a no-capturing group to permit "|" in the modules specification
         # (backward compatibility)
         my $re = join q{|}, map {"(?:$_)"} @modules;
-        return grep {m/$re/imx} @{$site_policies};
+        return grep {m/$re/ixms} @{$site_policies};
     }
 
     # Default to disabling ALL policies.
@@ -377,11 +377,11 @@ sub _unfix_shebang {
     my $doc         = shift;
     my $first_stmnt = $doc->schild(0) || return;
 
-    # Different versions of MakeMaker and Build use slightly differnt shebang
+    # Different versions of MakeMaker and Build use slightly different shebang
     # fixing strings.  This matches most of the ones I've found in my own Perl
     # distribution, but it may not be bullet-proof.
 
-    my $fixin_rx = qr{^eval 'exec .* \$0 \${1\+"\$@"}'\s*[\r\n]\s*if.+;}m;  ##no critic(RequireExtendedFormatting)
+    my $fixin_rx = qr{^eval 'exec .* \$0 \${1\+"\$@"}'\s*[\r\n]\s*if.+;}ms; ## no critic (RequireExtendedFormatting)
     if ( $first_stmnt =~ $fixin_rx ) {
         my $line = $first_stmnt->location()->[0];
         return ( $line => {ALL => 1}, $line + 1 => {ALL => 1} );
@@ -518,7 +518,7 @@ L<"POLICY THEMES"> section for more information about themes.
 
 
 B<-include> is a reference to a list of string C<@PATTERNS>.  Policy
-modules that match at least one C<m/$PATTERN/imx> will always be
+modules that match at least one C<m/$PATTERN/ixms> will always be
 loaded, irrespective of all other settings.  For example:
 
   my $critic = Perl::Critic->new(-include => ['layout'] -severity => 4);
@@ -531,7 +531,7 @@ C<-exclude> option.  Note that C<-exclude> takes precedence over
 C<-include> when a Policy matches both patterns.
 
 B<-exclude> is a reference to a list of string C<@PATTERNS>.  Policy
-modules that match at least one C<m/$PATTERN/imx> will not be loaded,
+modules that match at least one C<m/$PATTERN/ixms> will not be loaded,
 irrespective of all other settings.  For example:
 
   my $critic = Perl::Critic->new(-exclude => ['strict'] -severity => 1);
@@ -544,7 +544,7 @@ conjunction with the C<-include> option.  Note that C<-exclude> takes
 precedence over C<-include> when a Policy matches both patterns.
 
 B<-single-policy> is a string C<PATTERN>.  Only one policy that
-matches C<m/$PATTERN/imx> will be used.  Policies that do not match
+matches C<m/$PATTERN/ixms> will be used.  Policies that do not match
 will be excluded.  This option has precedence over the C<-severity>,
 C<-theme>, C<-include>, C<-exclude>, and C<-only> options.  You can
 set the default value for this option in your F<.perlcriticrc> file.
@@ -830,7 +830,7 @@ They are described briefly in the companion document
 L<Perl::Critic::PolicySummary|Perl::Critic::PolicySummary> and in more
 detail in the individual modules themselves.  Say C<"perlcritic -doc
 PATTERN"> to see the perldoc for all Policy modules that match the
-regex C<m/PATTERN/imx>
+regex C<m/PATTERN/ixms>
 
 There are a number of distributions of additional policies on CPAN.
 If L<Perl::Critic|Perl::Critic> doesn't contain a policy that you
index 8003b04..8d60394 100644 (file)
@@ -258,7 +258,7 @@ sub _policy_is_included {
     my ($self, $policy) = @_;
     my $policy_long_name = ref $policy;
     my @inclusions  = $self->include();
-    return any { $policy_long_name =~ m/$_/imx } @inclusions;
+    return any { $policy_long_name =~ m/$_/ixms } @inclusions;
 }
 
 #-----------------------------------------------------------------------------
@@ -267,7 +267,7 @@ sub _policy_is_excluded {
     my ($self, $policy) = @_;
     my $policy_long_name = ref $policy;
     my @exclusions  = $self->exclude();
-    return any { $policy_long_name =~ m/$_/imx } @exclusions;
+    return any { $policy_long_name =~ m/$_/ixms } @exclusions;
 }
 
 #-----------------------------------------------------------------------------
@@ -279,7 +279,7 @@ sub _policy_is_single_policy {
     return if not @patterns;
 
     my $policy_long_name = ref $policy;
-    return any { $policy_long_name =~ m/$_/imx } @patterns;
+    return any { $policy_long_name =~ m/$_/ixms } @patterns;
 }
 
 #-----------------------------------------------------------------------------
@@ -355,7 +355,7 @@ sub _validate_and_save_regex {
 
     my $found_errors;
     foreach my $regex (@regexes) {
-        eval { my $test = qr/$regex/imx; }
+        eval { my $test = qr/$regex/ixms; }
             or do {
                 my $cleaned_error = $EVAL_ERROR || '<unknown reason>';
                 $cleaned_error =~
@@ -830,19 +830,19 @@ option is explicitly given, setting C<-theme> causes the C<-severity>
 to be set to 1.
 
 B<-include> is a reference to a list of string C<@PATTERNS>.  Policies
-that match at least one C<m/$PATTERN/imx> will be loaded into this
+that match at least one C<m/$PATTERN/ixms> will be loaded into this
 Config, irrespective of the severity settings.  You can use it in
 conjunction with the C<-exclude> option.  Note that C<-exclude> takes
 precedence over C<-include> when a Policy matches both patterns.
 
 B<-exclude> is a reference to a list of string C<@PATTERNS>.  Polices
-that match at least one C<m/$PATTERN/imx> will not be loaded into this
+that match at least one C<m/$PATTERN/ixms> will not be loaded into this
 Config, irrespective of the severity settings.  You can use it in
 conjunction with the C<-include> option.  Note that C<-exclude> takes
 precedence over C<-include> when a Policy matches both patterns.
 
 B<-single-policy> is a string C<PATTERN>.  Only the policy that
-matches C<m/$PATTERN/imx> will be used.  This value overrides the
+matches C<m/$PATTERN/ixms> will be used.  This value overrides the
 C<-severity>, C<-theme>, C<-include>, C<-exclude>, and C<-only>
 options.
 
index 85ce513..36cb52f 100644 (file)
@@ -55,7 +55,7 @@ sub accumulate {
     my $statements = $doc->find('PPI::Statement');
     $self->{_statements} += $statements ? scalar @{$statements} : 0;
 
-    ## no critic (RequireExtendedFormatting, RequireLineBoundaryMatching)
+    ## no critic (RequireDotMatchAnything, RequireExtendedFormatting, RequireLineBoundaryMatching)
     my @lines = split /$INPUT_RECORD_SEPARATOR/, $doc->serialize();
     ## use critic
     $self->{_lines} += scalar @lines;
index 56a938b..e9b76c6 100644 (file)
@@ -139,7 +139,7 @@ sub subtests_in_tree {
 
     find( {wanted => sub {
                return if ! -f $_;
-               my ($fileroot) = m{(.+)[.]run\z}mx;
+               my ($fileroot) = m{(.+)[.]run\z}xms;
                return if !$fileroot;
                my @pathparts = File::Spec->splitdir($fileroot);
                if (@pathparts < 2) {
@@ -200,8 +200,8 @@ sub _subtests_from_file {
         my $line = $_;
 
         if ( $inheader ) {
-            $line =~ m/\A [#]/mx or throw_internal "Code before cut: $test_file";
-            my ($key,$value) = $line =~ m/\A [#][#] [ ] (\S+) (?:\s+(.+))? /mx;
+            $line =~ m/\A [#]/xms or throw_internal "Code before cut: $test_file";
+            my ($key,$value) = $line =~ m/\A [#][#] [ ] (\S+) (?:\s+(.+))? /xms;
             next if !$key;
             next if $key eq 'cut';
             if ( not $valid_keys{$key} ) {
@@ -287,8 +287,8 @@ sub _finalize_subtest {
 sub bundled_policy_names {
     require ExtUtils::Manifest;
     my $manifest = ExtUtils::Manifest::maniread();
-    my @policy_paths = map {m{\A lib/(Perl/Critic/Policy/.*).pm \z}mx} keys %{$manifest};
-    my @policies = map { join q{::}, split m{/}mx, $_} @policy_paths;
+    my @policy_paths = map {m{\A lib/(Perl/Critic/Policy/.*).pm \z}xms} keys %{$manifest};
+    my @policies = map { join q{::}, split m{/}xms, $_} @policy_paths;
     return sort @policies;
 }
 
index ee82ed4..4361308 100644 (file)
@@ -98,7 +98,7 @@ sub policy_is_thematic {
     # 'bugs && (pbp || core)'  ...could become... '1 && (0 || 1)'
 
     my $as_code = $rule; #Making a copy, so $rule is preserved
-    $as_code =~ s/ ( [\w\d]+ ) /exists $themes{$1} || 0/gemx;
+    $as_code =~ s/ ( [\w\d]+ ) /exists $themes{$1} || 0/gexms;
     my $is_thematic = eval $as_code;  ## no critic (ProhibitStringyEval)
 
     if ($EVAL_ERROR) {
@@ -118,15 +118,15 @@ sub cook_rule {
     return if not defined $raw_rule;
 
     #Translate logical operators
-    $raw_rule =~ s{\b not \b}{!}ixmg;     # "not" -> "!"
-    $raw_rule =~ s{\b and \b}{&&}ixmg;    # "and" -> "&&"
-    $raw_rule =~ s{\b or  \b}{||}ixmg;    # "or"  -> "||"
+    $raw_rule =~ s{\b not \b}{!}ixmsg;     # "not" -> "!"
+    $raw_rule =~ s{\b and \b}{&&}ixmsg;    # "and" -> "&&"
+    $raw_rule =~ s{\b or  \b}{||}ixmsg;    # "or"  -> "||"
 
     #Translate algebra operators (for backward compatibility)
-    $raw_rule =~ s{\A [-] }{!}ixmg;     # "-" -> "!"     e.g. difference
-    $raw_rule =~ s{   [-] }{&& !}ixmg;  # "-" -> "&& !"  e.g. difference
-    $raw_rule =~ s{   [*] }{&&}ixmg;    # "*" -> "&&"    e.g. intersection
-    $raw_rule =~ s{   [+] }{||}ixmg;    # "+" -> "||"    e.g. union
+    $raw_rule =~ s{\A [-] }{!}ixmsg;     # "-" -> "!"     e.g. difference
+    $raw_rule =~ s{   [-] }{&& !}ixmsg;  # "-" -> "&& !"  e.g. difference
+    $raw_rule =~ s{   [*] }{&&}ixmsg;    # "*" -> "&&"    e.g. intersection
+    $raw_rule =~ s{   [+] }{||}ixmsg;    # "+" -> "||"    e.g. union
 
     my $cooked_rule = lc $raw_rule;  #Is now cooked!
     return $cooked_rule;
index a892f6a..03ff630 100644 (file)
@@ -120,7 +120,7 @@ sub listed_policies {
     my @normalized_policy_names = ();
 
     for my $policy_name ( sort keys %{$self->{_profile}} ) {
-        $policy_name =~ s/\A - //mxo; #Chomp leading "-"
+        $policy_name =~ s/\A - //xmso; #Chomp leading "-"
         my $policy_long_name = policy_long_name( $policy_name );
         push @normalized_policy_names, $policy_long_name;
     }
index adf2ade..08d4f6f 100644 (file)
@@ -318,7 +318,7 @@ sub is_perl_global {
     my $elem = shift;
     return if !$elem;
     my $var_name = "$elem"; #Convert Token::Symbol to string
-    $var_name =~ s{\A [\$@%*] }{}mx;  #Chop off the sigil
+    $var_name =~ s{\A [\$@%*] }{}xms;  #Chop off the sigil
     return exists $GLOBALS{ $var_name };
 }
 
@@ -664,7 +664,7 @@ sub is_integer {
     my ($value) = @_;
     return 0 if not defined $value;
 
-    return $value =~ m{ \A [+-]? \d+ \z }mx;
+    return $value =~ m{ \A [+-]? \d+ \z }xms;
 }
 
 #-----------------------------------------------------------------------------
@@ -680,7 +680,7 @@ sub is_label_pointer {
     return if !$psib;
 
     return $statement->isa('PPI::Statement::Break')
-        && $psib =~ m/(?:redo|goto|next|last)/mxo;
+        && $psib =~ m/(?:redo|goto|next|last)/xmso;
 }
 
 #-----------------------------------------------------------------------------
@@ -769,7 +769,7 @@ sub _is_PL_file {
     my ($doc) = @_;
     return if not $doc->can('filename');
     my $filename = $doc->filename() || return;
-    return 1 if $filename =~ m/[.] PL \z/smx;
+    return 1 if $filename =~ m/[.] PL \z/xms;
     return 0;
 }
 
@@ -803,7 +803,7 @@ sub is_in_void_context {
 
 sub policy_long_name {
     my ( $policy_name ) = @_;
-    if ( $policy_name !~ m{ \A $POLICY_NAMESPACE }mx ) {
+    if ( $policy_name !~ m{ \A $POLICY_NAMESPACE }xms ) {
         $policy_name = $POLICY_NAMESPACE . q{::} . $policy_name;
     }
     return $policy_name;
@@ -813,7 +813,7 @@ sub policy_long_name {
 
 sub policy_short_name {
     my ( $policy_name ) = @_;
-    $policy_name =~ s{\A $POLICY_NAMESPACE ::}{}mx;
+    $policy_name =~ s{\A $POLICY_NAMESPACE ::}{}xms;
     return $policy_name;
 }
 
@@ -1017,10 +1017,10 @@ sub all_perl_files {
 
 sub _is_backup {
     my ($file) = @_;
-    return 1 if $file =~ m{ [.] swp \z}mx;
-    return 1 if $file =~ m{ [.] bak \z}mx;
-    return 1 if $file =~ m{  ~ \z}mx;
-    return 1 if $file =~ m{ \A [#] .+ [#] \z}mx;
+    return 1 if $file =~ m{ [.] swp \z}xms;
+    return 1 if $file =~ m{ [.] bak \z}xms;
+    return 1 if $file =~ m{  ~ \z}xms;
+    return 1 if $file =~ m{ \A [#] .+ [#] \z}xms;
     return;
 }
 
@@ -1033,16 +1033,16 @@ sub _is_perl {
     my ($file) = @_;
 
     #Check filename extensions
-    return 1 if $file =~ m{ [.] PL    \z}mx;
-    return 1 if $file =~ m{ [.] p[lm] \z}mx;
-    return 1 if $file =~ m{ [.] t     \z}mx;
+    return 1 if $file =~ m{ [.] PL    \z}xms;
+    return 1 if $file =~ m{ [.] p[lm] \z}xms;
+    return 1 if $file =~ m{ [.] t     \z}xms;
 
     #Check for shebang
     open my $fh, '<', $file or return;
     my $first = <$fh>;
     close $fh or throw_generic "unable to close $file: $!";
 
-    return 1 if defined $first && ( $first =~ m{ \A [#]!.*perl }mx );
+    return 1 if defined $first && ( $first =~ m{ \A [#]!.*perl }xms );
     return;
 }
 
@@ -1060,7 +1060,7 @@ sub shebang_line {
     return if $location->[0] != 1; # line number
     return if $location->[1] != 1; # column number
     my $shebang = $first_element->content;
-    return if $shebang !~ m{ \A [#]! }mx;
+    return if $shebang !~ m{ \A [#]! }xms;
     return $shebang;
 }
 
index b42faa6..1d391b2 100644 (file)
@@ -103,7 +103,7 @@ sub get_delimiters {
         # hack: pull them out ourselves
         # limitation: this regexp fails on s{foo}<bar>
         my $operator = defined $elem->{operator} ? $elem->{operator} : q{};
-        @delimiters = join q{}, $elem =~ m/\A $operator (.).*?(.) (?:[xmsocgie]*) \z/mx;
+        @delimiters = join q{}, $elem =~ m/\A $operator (.).*?(.) (?:[xmsocgie]*) \z/xms;
     } else {
         @delimiters = ($elem->{sections}->[0]->{type});
         if ($elem->{sections}->[1]) {
@@ -123,7 +123,7 @@ sub get_delimiters {
 
     sub _get_ppi_package {
         my ($src_class, $re_node) = @_;
-        (my $dest_class = $src_class) =~ s/\A Regexp::Parser::/Perl::Critic::PPIRegexp::/mx;
+        (my $dest_class = $src_class) =~ s/\A Regexp::Parser::/Perl::Critic::PPIRegexp::/xms;
         if (!$seen{$src_class}) {
             $seen{$src_class} = 1;
             croak 'Regexp node which is not in the Regexp::Parser namespace'