Algorithm::BestChoice - Choose the best


Algorithm-BestChoice documentation  | view source Contained in the Algorithm-BestChoice distribution.

Index


NAME

Top

Algorithm::BestChoice - Choose the best

VERSION

Top

Version 0.01

SYNOPSIS

Top

    # 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

Top

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

Top

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( <criterion> )

Given criterion, ->best will return the value that 1. has a matching matcher and 2. has the highest rank

AUTHOR

Top

Robert Krimen, <rkrimen at cpan.org>

BUGS

Top

Please report any bugs or feature requests to bug-algorithm-bestchoice at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Algorithm-BestChoice. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

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

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Algorithm-BestChoice

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Algorithm-BestChoice

* CPAN Ratings

http://cpanratings.perl.org/d/Algorithm-BestChoice

* Search CPAN

http://search.cpan.org/dist/Algorithm-BestChoice/

ACKNOWLEDGEMENTS

Top

COPYRIGHT & LICENSE

Top


Algorithm-BestChoice documentation  | view source Contained in the Algorithm-BestChoice distribution.