NAME
Sort::Hash get the keys to a hashref sorted by their values
VERSION
version 2.00
SYNOPSIS
Hash::Sort is just a convenience for returning the keys of a hashref sorted by their values. The hash may either be passed directly or as a hashref, numeric and alphanumeric sorting are supported, the sort may be either Ascending or Descending.
use Sort::Hash;
my @sorted = sort_hash( \%Hash );
This does exactly the same as:
my @sorted = ( sort { $Hash{$a} E<lt>=E<gt> $Hash{$b} } keys %Hash ) ;
Description
A single method sort_hash is exported.
sort_hash
Return a sorted array containing the keys of a hash.
Options to sort_hash
nofatal warn and return nothing instead of dying on
invalid sort
silent like nofatal but doesn't emit warnings either
noempty if the hashref is empty treat it as an error
normally nothing would be returned
desc sort descending instead of ascending
asc ascending sort is the default but you can specify it
alpha sort alpha (treats numbers as text)
strictalpha sort alpha but refuse to sort numbers as text
numeric sort as numbers, default is numeric
The first argument is the hashref to be sorted, followed by the arguments.
sort_hash( $hashref, 'strictalpha', 'desc' );
sort_hash( $hashref, qw/noempty nofatal alpha desc/);
Errors
Numeric sorts will fail if given a non-number. Normally alpha sorts will treat numbers as text. strictalpha uses Scalar::Util::looks_like_number to reject a hash that has any values that appear to be numbers.
When the data is illegal for the sort type in effect, (only alpha has no restriction) sort_hash will die. If you prefer it not to, use nofatal to return () and warn instead of die, silent (implies nofatal) will just return () without a warning.
Sorting an empty hashref will return nothing (). You can make this into an error that will die or warn depending on the nofatal flag with noempty.
AUTHOR
John Karr, <brainbuz at brainbuz.org>
BUGS
Please report any bugs or feature requests via the BitBucket issue tracker at https://bitbucket.org/brainbuz/sort-hash/issues. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
You can also look for information at: The documentation for the sort command in the Perl documentation.
LICENSE AND COPYRIGHT
Copyright 2014 John Karr.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 3 or at your option any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
A copy of the GNU General Public License is available in the source tree; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.