sourCEntral - mobile manpages

pdf

Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses

NAME

Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses − Use named character classes instead of explicit character lists.

AFFILIATION

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

DESCRIPTION

This policy is not for everyone! If you are working in pure ASCII , then disable it now or you may see some false violations.

On the other hand many of us are working in a multilingual world with an extended character set, probably Unicode. In that world, patterns like "m/[A−Z]/" can be a source of bugs when you really meant "m/\p{IsUpper}/". This policy catches a selection of possible incorrect character class usage.

Specifically, the patterns are:

"[\t\r\n\f\ ]" vs. "\s"

"[\t\r\n\ ]" vs. "\s" (because many people forget "\f")

"[A−Za−z0−9_]" vs. "\w"

"[A−Za−z]" vs. "\p{IsAlphabetic}"

"[A−Z]" vs. "\p{IsUpper}"

"[a−z]" vs. "\p{IsLower}"

"[0−9]" vs. "\d"

"[^\w]" vs. "\W"

"[^\s]" vs. "\S"

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 AT cpan DOT 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

pdf