guaranteed to be in the same order as either the C<keys> or C<values>
function would produce on the same (unmodified) hash. Since Perl
5.8.1 the ordering is different even between different runs of Perl
-because of security reasons (see L<perlsec/"Algorithmic Complexity
-Attacks">)
+for security reasons (see L<perlsec/"Algorithmic Complexity Attacks">).
When the hash is entirely read, a null array is returned in list context
(which when assigned produces a false (C<0>) value), and C<undef> in
The keys are returned in an apparently random order. The actual
random order is subject to change in future versions of perl, but it
is guaranteed to be the same order as either the C<values> or C<each>
-function produces (given that the hash has not been modified).
-Since Perl 5.8.1 the ordering is different even between different
-runs of Perl because of security reasons (see L<perlsec/"Algorithmic
-Complexity Attacks">)
+function produces (given that the hash has not been modified). Since
+Perl 5.8.1 the ordering is different even between different runs of
+Perl for security reasons (see L<perlsec/"Algorithmic Complexity
+Attacks">).
As a side effect, calling keys() resets the HASH's internal iterator,
see L</each>.
is guaranteed to be the same order as either the C<keys> or C<each>
function would produce on the same (unmodified) hash. Since Perl
5.8.1 the ordering is different even between different runs of Perl
-because of security reasons (see L<perlsec/"Algorithmic Complexity
-Attacks">)
+for security reasons (see L<perlsec/"Algorithmic Complexity Attacks">).
As a side effect, calling values() resets the HASH's internal iterator,
see L</each>.