Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: Ksh

by ash (Monk)
on Aug 02, 2002 at 13:48 UTC ( #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 <>

Log In?

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

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2023-12-10 17:45 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (41 votes). Check out past polls.