Hello, erm, "Evan N Mr Niso/Lockheed Martin Kehayias"

This should do what you want:


    my @names;
    do {
        errmesg() if @names;
        my $ans = <STDIN>;
        @names = split /\s*,\s*/, $ans;
    } while (grep {/[^a-zA-Z]/} @names);

which splits on commas with any amount of preceding and trailing whitespace.
Names have to be alphabetic.

HTH,

Rob


"Evan N Mr Niso/Lockheed Martin Kehayias" <[EMAIL PROTECTED]> wrote
in message 90AFE0B84E52EE46A8CD1DB0789C0A860ED043@DADC144">news:90AFE0B84E52EE46A8CD1DB0789C0A860ED043@DADC144...
> Greetings,
>
> I am attempting to limit entries a user could make when inputting names
into
> one of my scripts.  I prompt the user to enter one or more names.  One
name
> is easy to isolate but when there are more I want to support commas.  At
the
> same time I don't want to accept anything other than names and commas.  I
> want to force the user to either enter names correctly or exit.  For that
> matter it would be really cool if I could test the names against
> /etc/passwd.  But beggars can't be choosers I will tackle the array piece
> later.
>
> What the user sees:
>
> Please enter user name(s):
> If more than one separate using commas
> example (single name): evan
> example (multi name): debbie, clint, henry
>
>
>
> So far what broken pieces I have...
>
> #!/usr/bin/perl
>
>
> while($ans !~ /^[a-z]+$/ || $ans !~ /^[a-z]+\,?[a-z]*$/) {
>   errmesg ();
>   $ans = <STDIN>;
>
> };
>
> sub errmesg {
>   print "\nType user name(s) and press enter:\n";
>   print "note: if more than one separate using commas\n";
>   print "example (single name): evan\n";
>   print "example (multi name): debbie, clint, henry\n";
> }
>



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

Reply via email to