Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Expression form of map or grep

by haukex (Bishop)
on Jul 10, 2020 at 20:00 UTC ( #11119159=note: print w/replies, xml ) Need Help??


in reply to Expression form of map or grep

Most of the default Perl::Critic policies come from TheDamian's Perl Best Practices. The rationale for the policies can be found in perlcritic's verbose output, the POD (in this case, Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap), and of course the book (page 169).

$ perlcritic 11119158.pl Expression form of "map" at line 8, column 12. See page 169 of PBP. +(Severity: 4) $ perlcritic --verbose 11 11119158.pl Expression form of "map" at line 8, near 'my @list = map "$_ beads", @ +colors, @grey_scale;'. BuiltinFunctions::RequireBlockMap (Severity: 4) The expression forms of `grep' and `map' are awkward and hard to r +ead. Use the block forms instead. @matches = grep /pattern/, @list; #not ok @matches = grep { /pattern/ } @list; #ok @mapped = map transform($_), @list; #not ok @mapped = map { transform($_) } @list; #ok

Although Perl::Critic policies usually have a very good reason, some of them can be seen as stylistic choices and one can disagree with PBP if one knows what one is doing. The severify of policies can be changed via the config file, e.g.:

$ cat ~/.perlcriticrc severity = 3 [BuiltinFunctions::RequireBlockMap] severity = 2

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11119159]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2020-10-24 07:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (242 votes). Check out past polls.

    Notices?