Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Perl::CPerl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches(3)

NAME
       Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches -
       Use "eq" or hash instead of fixed-pattern regexps.

AFFILIATION
       This Policy is part of the core Perl::Critic distribution.

DESCRIPTION
       A regular expression that matches just a fixed set of constant strings
       is wasteful of performance and is hard on maintainers.  It is much more
       readable and often faster to use "eq" or a hash to match such strings.

	   # Bad
	   my $is_file_function = $token =~ m/\A (?: open | close | read ) \z/xms;

	   # Faster and more readable
	   my $is_file_function = $token eq 'open' ||
				  $token eq 'close' ||
				  $token eq 'read';

       For larger numbers of strings, a hash is superior:

	   # Bad
	   my $is_perl_keyword =
	       $token =~ m/\A (?: chomp | chop | chr | crypt | hex | index
				  lc | lcfirst | length | oct | ord | ... ) \z/xms;

	   # Better
	   Readonly::Hash my %PERL_KEYWORDS => map {$_ => 1} qw(
	       chomp chop chr crypt hex index lc lcfirst length oct ord ...
	   );
	   my $is_perl_keyword = $PERL_KEYWORD{$token};

       Conway also suggests using "lc()" instead of a case-insensitive match.

   VARIANTS
       This policy detects both grouped and non-grouped strings.  The grouping
       may or may not be capturing.  The grouped body may or may not be
       alternating.  "\A" and "\z" are always considered anchoring which "^"
       and "$" are considered anchoring is the "m" regexp option is not in
       use.  Thus, all of these are violations:

	   m/^foo$/;
	   m/\A foo \z/x;
	   m/\A foo \z/xm;
	   m/\A(foo)\z/;
	   m/\A(?:foo)\z/;
	   m/\A(foo|bar)\z/;
	   m/\A(?:foo|bar)\z/;

       Furthermore, this policy detects violations in "m//", "s///" and "qr//"
       constructs, as you would expect.

CONFIGURATION
       This Policy is not configurable except for the standard options.

CREDITS
       Initial development of this policy was supported by a grant from the
       Perl Foundation.

AUTHOR
       Chris Dolan <cdolan@cpan.org>

COPYRIGHT
       Copyright (c) 2007-2011 Chris Dolan.  Many 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

perl v5Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net