Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Ksh

by ash (Monk)
on Aug 02, 2002 at 13:48 UTC ( [id://187085]=note: print w/replies, xml ) Need Help??


in reply to Ksh style select menus in perl

My solution would be something like this...
Although, I'm not sure I like that the ouput is sent to stderr.
I like to preserve that for errors :)
#!/usr/bin/perl use strict; my $language = Select('Select your language:', qw(English Francais)); if($language eq 'English') { print "Thank you!\n"; } elsif($language eq 'Francais') { print "Merci!\n"; } else { print "Unknown language: $language"; } sub Select { my($prompt, @choices) = @_; while(1) { my $i = 0; print STDERR $prompt, "\n"; print STDERR join("\n", map{++$i.") $_"} @choices), "\n"; my $answer = lc <STDIN>; chomp $answer; if($answer =~ /^\d+$/) { return $choices[$answer-1] if defined $choices[$answer-1]; } else { my $out = [grep {lc $_ eq $answer} @choices]->[0]; return $out if $out; } } }
-- Ash/asksh <ask@unixmonks.net>

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://187085]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2024-04-24 03:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found