1 while $_ = <>, !m[^\s*(y|n|)\s*$]i;
$choice = uc $1 || 'Y';
The major discrepancy is that if <> runs dry, you get a warning, and
$choice ends up as 'Y' instead of undef. Should that situation be handled
cleanly?
LP^>
On Thu, Sep 05, 2002 at 01:37:05PM -0400, Selector, Lev Y wrote:
> Hello,
>
> What would be a more elegant (short) way to express the following:
>
> while ($choice = uc <>) {
> $choice =~ s/(^\s+|\s+$)//g;
> $choice = 'Y', last if ($choice =~ /^Y?$/);
> $choice = 'N', last if ($choice =~ /^N$/ );
> }
>
> As you see, it is an infinite loop which wouldn't let you out unless you do:
>
> 'y','Y',<ENTER> - 'Y'
> 'n','N' - 'N'
>
>
> Warmest Regards,
> Lev Selector