keys

NAME

keys - retrieve list of indices from a hash


SYNOPSIS

keys ASSOC_ARRAY


DESCRIPTION

Returns a normal array consisting of all the keys of the named associative array. (In a scalar context, returns the number of keys.) The keys are returned in an apparently random order, but it is the same order as either the values() or each() function produces (given that the associative array has not been modified). Here is yet another way to print your environment:

@keys = keys %ENV; @values = values %ENV; while ($#keys >= 0) { print pop(@keys), '=', pop(@values), "\n"; }

or how about sorted by key:

foreach $key (sort(keys %ENV)) { print $key, '=', $ENV{$key}, "\n"; }

To sort an array by value, you'll need to use a sort{} function. Here's a descending numeric sort of a hash by its values:

foreach $key (sort { $hash{$b} <=> $hash{$a} } keys %hash)) { printf "%4d %s\n", $hash{$key}, $key; }