NAME

IO::Prompt::Timeout - Simple prompt interface with timeout.

SYNOPSIS

use IO::Prompt::Timeout qw(:all);
my $answer = prompt('Yes or No? (y/n)', %option);
my $is_timeout = has_prompt_timed_out();

# Specifying timeout seconds
my $answer = prompt('Yes or No? (y/n) Answer in 10 seconds.', timeout => 10);

# Specifying default answer
my $answer = prompt('Yes or No? (y/n)', default => 'n');

DESCRIPTION

IO::Prompt::Timeout provides prompt subroutine most of which comes from ExtUtils::MakeMaker.

It also has timeout feature just like Prompt::Timeout. The default timeout seconds is 60. When prompt timed out, the default answer can be taken when it's set by option.

Unlike Prompt::Timeout, this module uses simple $SIG{ALRM}. The function of clearing timer by a single key click is not supported which is implemented in Prompt::Timeout.

SUBROUTINES

prompt : Answer(SCALAR)

Show prompt and returns the answer by user's input.

has_prompt_timed_out : BOOL

Called after a prompt call. Returns if prompt subroutine has timed out or not.

ENVIRONMENT VARIABLES

$ENV{PERL_IOPT_USE_DEFAULT}

If set true, prompt will always return the default answer without waiting for user input.

KNOWN ISSUES

$SIG{ALRM} is not supported on Windows OS. So this module won't work.

SEE ALSO

ExtUtils::MakeMaker, IO::Prompt::Tiny, Prompt::Timeout

LICENSE

Copyright (C) YASUTAKE Kiyoshi.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

YASUTAKE Kiyoshi <yasutake.kiyoshi@gmail.com>