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]