I
KNEW I'd read something about this before. p383 in
Programming Perl, 3rd ed.
By calling keys in a scalar context, we reset its internal state to ensure that the next each used in the return statement will get the first key.
sub find_stuff {
my $self = shift;
scalar keys %$self;
while (my $k = each %$self) {
return $k if ($self->{$k}->{blablah});
}
return undef;
}
Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.
I shouldn't have to say this, but any code, unless otherwise stated, is untested