Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xsawyerx/perl-critic-policy-variables-prohibitlooponhash

Perl::Critic::Policy::Variables::ProhibitLoopOnHash - Don't write loops on hashes, only on keys and values of hashes
https://github.com/xsawyerx/perl-critic-policy-variables-prohibitlooponhash

Last synced: 28 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# NAME

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

# VERSION

version 0.008

# DESCRIPTION

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.)

# CONFIGURATION

This policy is not configurable except for the standard options.

# AUTHOR

Sawyer X, `[email protected]`

# THANKS

Thank you to Ruud H.G. Van Tol.

# SEE ALSO

[Perl::Critic](https://metacpan.org/pod/Perl::Critic)

# AUTHOR

Sawyer X

# COPYRIGHT AND LICENSE

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.