From: "John W. Krahn" <[EMAIL PROTECTED]>
> Grant Hansen wrote:
> > 
> > Can someone tell me what is wrong with this.
> > 
> > Upon entering a 0 I want to break out of the loop and continue
> > processing the data in @data.
> > 
> > $quit = 0;
> > while (! $quit) {
> >     chomp(@data = <STDIN>);;
> >     if ($data == 0) {
> >         $quit = 1;
> >                     }}
> 
> 
> If you want to stop input based on what the user entered on the
> command line then you have to read ONE line at a time and not use an
> array for input.  BTW your loop will only read numbers and not strings
> because the test '== 0' will evaluate strings in a numerical context
> which are always equal to 0.

Unless the string starts with a number that is not equal to zero :-)

That is this loop

> while ( my $input = <STDIN> ) {
>     chomp $input;
>     last if $input == 0;
>     push @data, $input;
>     }

will read lines as long as they all start with a non zero number.
Therefore the @data may the contain things like
        1sdgdfsg
        59 this is nonsense
        -1 bellow zero

Jenda

=========== [EMAIL PROTECTED] == http://Jenda.Krynicky.cz ==========
There is a reason for living. There must be. I've seen it somewhere.
It's just that in the mess on my table ... and in my brain
I can't find it.
                                        --- me


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

Reply via email to