Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I have the following script segment:
open PAGE, "$data_reg" or die "Can't open $data_reg: $!"; while (my $line = <PAGE>) { ($username_db,$password_db,$email_address_db,$name_db,$spare) = sp +lit "\t",$line; if ($username eq $username_db) { $check++; } else { $problem = "Unfortunately we cannot find reference to the +username supplied.<br> Please check with the webmaster of this site."; print "$problem"; exit; } } close PAGE;
This seemes always to fail ar the first pass and does not check the rest of the lines.

I can get round this by taking the 'else' statement out and doing (after close PAGE):

if ($check){ #do something; } else { $problem etc. }
But I don't want to!

can someone tell me why the original fails to lookup the whole file?