Correct me if I am wrong but wouldn't 
@names = sprit /,/,$ans;
Then you could perform your tests against the array elements.
if (/[A-Za-z]+/)
Assuming that the names would only contain those characters.

or if (/\w+/) meaning all word characters.

Do the same thing. Splitting everything separated by a comma?

> -----Original Message-----
> From: Rob Dixon [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, January 09, 2003 10:06 AM
> To: [EMAIL PROTECTED]
> Subject: Re: regular expressions
> 
> 
> 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]
> 


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

Reply via email to