logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline - Use "{" and "}" to delimit

Affiliation

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

Author

       Chris Dolan <cdolan@cpan.org>

Configuration

       There is one option for this policy, "allow_all_brackets".  If this is true, then, in addition to
       allowing "{}", the other matched pairs of "()", "[]", and "<>" are allowed.

Credits

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

Description

       Long regular expressions are hard to read.  A good practice is to use the "x" modifier and break the
       regex into multiple lines with comments explaining the parts.  But, with the usual "//" delimiters, the
       beginning and end can be hard to match, especially in a "s///" regexp.  Instead, try using "{}"
       characters to delimit your expressions.

       Compare these:

           s/
              <a \s+ href="([^"]+)">
               (.*?)
              </a>
            /link=$1, text=$2/xms;

       vs.

           s{
              <a \s+ href="([^"]+)">
               (.*?)
              </a>
            }
            {link=$1, text=$2}xms;

       Is that an improvement?  Marginally, but yes.  The curly braces lead the eye better.

Name

       Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline - Use "{" and "}" to delimit
       multi-line regexps.

See Also