NAME¶
App::Cmd::Plugin::Prompt - plug prompting routines into your commands
VERSION¶
version 1.005
SYNOPSIS¶
In your app:
package MyApp;
use App::Cmd::Setup -app => {
plugins => [ qw(Prompt) ],
};
In your command:
package MyApp::Command::dostuff;
use MyApp -command;
sub run {
my ($self, $opt, $args) = @_;
return unless prompt_yn('really do stuff?', { default => 1 });
...
}
SUBROUTINES¶
prompt_str¶
my $input = prompt_str($prompt, \%opt)
This prompts a user for string input. It can be directed to persist until input
is 'acceptable'.
Valid options are:
- •
- input: optional coderef, which, when invoked, returns the user's
response; default is to read from STDIN.
- •
- output: optional coderef, which, when invoked (with two arguments:
the prompt and the choices/default), should prompt the user; default is to
write to STDOUT.
- •
- valid: an optional coderef which any input is passed into and which
must return true in order for the program to continue
- •
- default: may be any string; must pass the 'valid' coderef (if
given)
- •
- choices: what to display after the prompt; default is either the
'default' parameter or nothing
- •
- no_valid_default: do not test the 'default' parameter against the
'valid' coderef
- •
- invalid_default_error: error message to throw when the 'default'
parameter is not valid (does not pass the 'valid' coderef)
prompt_yn¶
my $bool = prompt_yn($prompt, \%opt);
This prompts the user for a yes or no response and won't give up until it gets
one. It returns true for yes and false for no.
Valid options are:
default: may be yes or no, indicating how to interpret an empty response;
if empty, require an explicit answer; defaults to empty
prompt_any_key($prompt)¶
my $input = prompt_any_key($prompt);
This routine prompts the user to "press any key to continue."
($prompt, if supplied, is the text to prompt with.
SEE ALSO¶
App::Cmd
AUTHOR¶
Ricardo Signes <rjbs@cpan.org>
COPYRIGHT AND LICENSE¶
This software is copyright (c) 2004 by Ricardo Signes.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language system itself.