Skip to content

Commit

Permalink
Merge pull request #280 from jrha/each_is_evil
Browse files Browse the repository at this point in the history
coding_style: Document each's evilness
  • Loading branch information
jrha authored Sep 13, 2024
2 parents bca55fd + 474589c commit 60e7dce
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions _development/coding_style.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,29 @@ And the bad example:
my $circle_area = $radius ** 2 * 3.14159;
```

### Don't use each

`each` is evil, and although it can be used correctly, should be avoided. The problem is that each sort-of remembers the last element it iterated over, this has all sorts of nasty side effects.

Use `foreach` to iterate over `keys` instead.

Bad example:

```perl
while (my ($k, $v) = each(%h)) {
...
}
```

Good example:

```perl
foreach my $k (keys %h) {
my $v = $h{$k};
...
}
```

### Module header

A Perl module **must** start with a line like:
Expand Down

0 comments on commit 60e7dce

Please sign in to comment.