


Tie::Hash::Rank(U3s)er Contributed Perl DocumentatiToine::Hash::Rank(3)


NNNNAAAAMMMMEEEE
       Tie::Hash::Rank - A hash which turns values into ranking
       positions

SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
         use Tie::Hash::Rank

         tie my %ranks, 'Tie::Hash::Rank';
         %ranks=(
           Adams   => 78,
           Davies  => 35,
           Edwards => 84,
           Thomas  => 47
         );
         print $ranks{Adams};


DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
       This module allows you to tie a hash such that when you
       retrieve values from it, you get the value's rank instead
       of the actual data.  By default, it ranks items
       numerically, with the highest value getting rank 1, and
       given two equal values they will also get the same rank.

       The following named parameters are supported:

       ""ALGORITHM""
           Use "ALGORITHM" to sort items prior to ranking them.
           The default is a reverse-numeric sort.  Specify it
           thus $DATA{$a} <=> $DATA{$b} to do a normal numeric
           sort.  Divining how to do other types of sort is left
           as a trivial exercise for the reader.  See perldoc -f
           sort.

       ""EQUALITYSUFFIX""
           Append "EQUALITYSUFFIX" to the rank of items with
           equal rank.  The default is to have no EQUALITYSUFFIX,
           but a common alternative would be an "=" sign.

       ""EQUALITYPREFIX""
           Prepend "EQUALITYPREFIX" to the rank of items with
           equal rank.  The default is to have no EQUALITYPREFIX,
           but a common alternative would be an "=" sign.

       ""RECALCULATE""
           Can be either "onstore" or "onfetch", and defaults to
           'onstore'.  This determines when the module
           recalculates the ranks.  'onstore' makes it
           recalculate whenever you add a value to the hash, and
           'onfetch' whenever you retrieve a value.  Use this
           option if you need to tune your hash for data which is
           mainly read or mainly written, although it will make
           very little difference for small data-sets.




2001-06-13                 perl v5.6.1                          1





Tie::Hash::Rank(U3s)er Contributed Perl DocumentatiToine::Hash::Rank(3)


BBBBUUUUGGGGSSSS
       Plenty, no doubt.  Please tell me if you find any.

AAAAUUUUTTTTHHHHOOOORRRR
       David Cantrell <david@cantrell.org.uk>

       This module originated as a grotesquely over-engineered
       answer to a trivial question posed by Simon Cozens as an
       example of something you might want to ask when testing
       someone's perl skillz.  An earlier - and less complete -
       version of this module was posted on the London Perl
       Mongers mailing list.

CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
       Copyright 2001 David Cantrell.

       This module is licensed under the same terms as perl
       itself.

SSSSEEEEEEEE AAAALLLLSSSSOOOO
       _T_i_e_:_:_H_a_s_h(3)




































2001-06-13                 perl v5.6.1                          2


