DOKK / manpages / debian 12 / libperl-critic-policy-variables-prohibitlooponhash-perl / Perl::Critic::Policy::Variables::ProhibitLoopOnHash.3pm.en
Perl::Critic::Policy::Variables::ProhibitLoopOnHash(3pm) User Contributed Perl Documentation Perl::Critic::Policy::Variables::ProhibitLoopOnHash(3pm)

Perl::Critic::Policy::Variables::ProhibitLoopOnHash - Don't write loops on hashes, only on keys and values of hashes

version 0.008

When "looping over hashes," we mean looping over hash keys or hash values. If you forgot to call "keys" or "values" you will accidentally loop over both.

    foreach my $foo (%hash) {...}        # not ok
    action() for %hash;                  # not ok
    foreach my $foo ( keys %hash ) {...} # ok
    action() for values %hash;           # ok

An effort is made to detect expressions:

    action() for %hash ? keys %hash : ();                             # ok
    action() for %{ $hash{'stuff'} } ? keys %{ $hash{'stuff'} } : (); # ok

(Granted, the second example there doesn't make much sense, but I have found a variation of it in real code.)

This policy is not configurable except for the standard options.

Sawyer X, "xsawyerx@cpan.org"

Thank you to Ruud H.G. Van Tol.

Perl::Critic

Sawyer X

This software is copyright (c) 2018 by Sawyer X.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

2022-12-12 perl v5.36.0