NAME Algorithm::BestChoice - Choose the best VERSION Version 0.01 SYNOPSIS # Find my favorite food based on color my \$chooser = Algorithm::BestChoice->new; \$chooser->add( match => red, value => cherry, rank => 1 ) \$chooser->add( match => red, value => apple, rank => 10 ) # Like apples \$chooser->add( match => red, value => strawberry, rank => -5 ) # Don't like strawberries \$chooser->add( match => purple, value => grape, rank => 20 ) # Delicious \$chooser->add( match => yellow, value => banana ) \$chooser->add( match => yellow, value => lemon rank => -5 ) # Too sour my \$favorite; \$favorite = \$chooser->best( red ) # apple is the favorite red \$favorite = \$chooser->best( [ red, yellow, purple ] ) # grape is the favorite among red, yellow, and purple DESCRIPTION An Algorithm::BestChoice object is similar to a hash, except it returns a result based on a given key AND relative ranking. That is, you can associate multiple values with a single key, and differentiate them by using a rank (or weight). METHODS Algorithm::BestChoice->new Create and return a new Algorithm::BestChoice object \$chooser->add( ... ) Add a possible choice to the chooser The arguments are: match The key for the choice, can be a string or a regular expression value The value to associate with the key (what is returned by ->best) rank An optional numeric weight, the default is 0 (>0 is better, <0 is worse) \$value = \$chooser->best( ) Given criterion, ->best will return the value that 1. has a matching matcher and 2. has the highest rank AUTHOR Robert Krimen, "" BUGS Please report any bugs or feature requests to "bug-algorithm-bestchoice at rt.cpan.org", or through the web interface at . 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. perldoc Algorithm::BestChoice You can also look for information at: * RT: CPAN's request tracker * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings * Search CPAN ACKNOWLEDGEMENTS COPYRIGHT & LICENSE Copyright 2009 Robert Krimen, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.