You are probably going to have to loop through the list, looking in it for
the data input:

my $input = 'undef';
my @possible_list = ('one', 'two','three');
 until ($input eq "exit")
{
    print "\nPlease type one of @possible_list ";
    chomp ($input = <STDIN>);
    foreach my $entry( @possible_list )
    {
         if ("$input" eq "list") {
             # do stuff
         }
         else{ # don't do stuff }
    }
}

Advanced:   To avoid looping, use a hash instead of an array:



"Gary Merrick" <[EMAIL PROTECTED]> wrote in message
00b401c2cce3$201ba3c0$6401a8c0@BLIVOT">news:00b401c2cce3$201ba3c0$6401a8c0@BLIVOT...
> I'm taking a beginning Perl class, and we haven't gotten to pattern
matching
> yet.  I need to somehow test for user input being numeric.  I think.  <:-)
>
> The second "elsif" is where I'm hung up.  It seems to catch any kind of
invalid
> input, text or numeric.  Also, without the first "elsif" statement, users
typing
> "exit" will be given an "Invalid input" error before exiting.  (sigh)
Could
> somebody please point me in the right direction?  Any help would be very
much
> appreciated.
>
> Here's what I have so far:
>
>
> my $input = 'undef';
> until ($input eq "exit") {
> print "\nPlease type one of [list, imdb_number, exit]: ";
> chomp ($input = <STDIN>);
> if ("$input" eq "list") {
> # do stuff
> }
> elsif ("$input" eq "exit") {
> # Do nothing.
> # Without this part, user gets "Invalid input" message before exiting.
> }
> # This part seems to catch any kind of invalid input, and it never gets
> # to "else".  Why?  I guess I need to test for numeric input (if it's not,
> # it goes to "else"), and then see if the number matches one of these:
> elsif ("$input" == "0120611"||"0106308"||"0088247"||"0267804"||"0094074"||
> "0102798"||"0120382"||"0196229"||"0272152"||"0109830") {
> # do stuff
> }
> else {
> print "\n\tInvalid input.  Please try again.\n";
> }
> }
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to