tv_grab_au 0.6 patch (with sub askQuestion added on)
----------------------------------------------------
sub askQuestion {
my ($prompt, $default, @options) = @_;
printf "\n";
printf "$prompt [default: $default]\n\n";
my $counter = 1;
foreach my $value (@options) {
if ($counter < 10) {
printf " ";
}
printf "$counter\. $value\n";
$counter += 1;
}
printf "\n";
open (TTYIN, "/dev/tty");
$counter -= 1;
printf "Please choose from number 1 - $counter: ";
my $answer_no = <TTYIN>;
my $answer_value;
close (TTYIN);
chomp ($answer_no);
if ($answer_no) {
$answer_value = @options[$answer_no - 1];
}
else {
$answer_value = $default;
}
printf "You choice is: $answer_value\n\n";
return $answer_value;
}
Call the function in this way:
my %STATES = (
'SA - Adelaide' => 'Adelaide',
'Queensland - Brisbane' => 'Brisbane',
'ACT - Canberra' => 'Canberra',
'NT - Darwin' => 'Darwin',
'Tasmania - Hobart' => 'Hobart',
'Victoria - Macquarie' => 'Macquarie',
'NSW - Regional' => 'NSWReg',
'NT - Regional' => 'NTReg',
'WA - Perth' => 'Perth',
'Queensland - Regional' => 'QLDReg',
'SA - Regional' => 'SAReg',
'NSW - Sydney' => 'Sydney',
'Tasmania - Regional' => 'TASReg',
'Victoria - Regional' => 'VICReg',
'WA - Regional' => 'WAReg'
);
my $default_st = "NT - Darwin";
my $cn = askQuestion ('Grab listings for which region?', $default_st, sort keys %STATES);
my $c = $STATES{$cn}; die if not defined $c;
Output looks like:
Grab listings for which region? [default: NT - Darwin]
1. ACT - Canberra
2. NSW - Regional
3. NSW - Sydney
4. NT - Darwin
5. NT - Regional
6. Queensland - Brisbane
7. Queensland - Regional
8. SA - Adelaide
9. SA - Regional
10. Tasmania - Hobart
11. Tasmania - Regional
12. Victoria - Macquarie
13. Victoria - Regional
14. WA - Perth
15. WA - Regional
Please choose from number 1 - 15: 12
You choice is: Victoria - Macquarie
|