Acme-Magic8Ball

 view release on metacpan or  search on metacpan

lib/Acme/Magic8Ball.pm  view on Meta::CPAN


Ask and ye shall receive!

If you don't pass in an array of answers it will use the traditional ones.

=cut
    
sub ask {
    my $question = shift || return "You must ask a question!";
    my @answers  = @_;

    unless (@answers) {
        my $pos = tell DATA;
        @answers = map { chomp; $_ } <DATA>;
        seek DATA, $pos,0;
    }
    return $answers[rand @answers] unless $CONSISTENT;

    my $hashcode = 0;                                                                                                                                       
    $hashcode   += ord($_) foreach split(//, $question);                                                                                                        
    return $answers[$hashcode % scalar(@answers) - 1];
}

=head1 AUTHOR

Simon Wistow <simon@thegestalt.org>

=head1 COPYING

Copyright 2005, Simon Wistow

Distributed under the same terms as Perl itself.

=head1 DEVELOPMENT

You can get the latest version from 

https://github.com/simonwistow/Acme-Magic8Ball

=head1 SEE ALSO

The 8 Ball FAQ              - http://8ball.ofb.net/faq.html

Mattel (who own the 8 Ball) - http://www.mattel.com         

=cut




__DATA__
Signs point to yes.
Yes.
Reply hazy, try again.
Without a doubt.
My sources say no.
As I see it, yes.
You may rely on it.
Concentrate and ask again.
Outlook not so good.
It is decidedly so.
Better not tell you now.
Very doubtful.
Yes - definitely.
It is certain.
Cannot predict now.
Most likely.
Ask again later.
My reply is no.
Outlook good.
Don't count on it.



( run in 1.274 second using v1.01-cache-2.11-cpan-c966e8aa7e8 )