Bot::Cobalt::Frontend::Utils - Helper utils for Bot::Cobalt frontends
use Bot::Cobalt::Frontend::Utils qw/ :all /; my $do_something = ask_yesno( prompt => "Do some stuff?" default => 'y', ); if ($do_something) { ## Yes } else { ## No } ## Ask a question with a default answer ## Keep asking until validate => returns undef my $answer = ask_question( prompt => "Tastiest snack?" default => "cake", validate => sub { my ($value) = @_; return "No value specified" unless defined $value; (grep { $_ eq $value } qw/cake pie cheese/) ? undef : "Snack options are cake, pie, cheese" }, );
This module exports simple helper functions for use by Bot::Cobalt frontends.
The exported functions are fairly simplistic; take a gander at Term::UI if you're looking for a rather more solid terminal/user interaction module.
Prompt the user for a yes or no answer.
A default 'y' or 'n' answer must be specified:
my $yesno = ask_yesno( prompt => "Do stuff?" default => "n" );
Returns false on a "no" answer, true on a "yes."
Prompt the user with a question, possibly with a default answer, and optionally with a code reference to validate.
my $ans = ask_question( prompt => "Color of the sky?" default => "blue", validate => sub { my ($value) = @_; return "No value specified" unless defined $value; return undef if grep { $_ eq $value } qw/blue pink orange red/; return "Valid colors: blue, pink, orange, red" }, die_if_invalid => 0, );
If a validation coderef is specified, it should return undef to signify successful validation or an error string describing the problem.
If die_if_invalid is specified, an invalid answer will die() out rather than asking again.
Jon Portnoy <avenj@cobaltirc.org>
http://www.cobaltirc.org
To install Bot::Cobalt, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Bot::Cobalt
CPAN shell
perl -MCPAN -e shell install Bot::Cobalt
For more information on module installation, please visit the detailed CPAN module installation guide.