Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Checking username and password but cant break whileloop!

by tobyink (Abbot)
on Nov 09, 2012 at 16:06 UTC ( #1003175=note: print w/replies, xml ) Need Help??

in reply to [SOLVED] Checking username and password but cant break whileloop!

I think you want the last function.

my $match = 0; # We haven't got a match yet. while ($lines = <PSWD>){ ($user,$pswd,$userID,$groupID,$info,$home,$shell) = split ':', $lin +es; if ($username eq $user) { print "Checking username... MATCH\n"; if ($passwd eq $pswd){ print "Checking password... MATCH\n"; } else { print "Password does not match!\n"; } $match = 1; # We have found a match last; # So stop looping already! } } unless ($match) { print "\"$username\" does not match any users in our database!\n"; }

Update: I have also moved that else outside of the loop as an unless block.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Replies are listed 'Best First'.
Re^2: Checking username and password but cant break whileloop!
by jaffinito34 (Acolyte) on Nov 09, 2012 at 16:10 UTC

    Same thing happened, it printed "...does not match..." for each user in the file rather than just once. Where you have it is for when the username is correct, which I don't have any issues with. It's when the username entered is incorrect that is giving me problems.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1003175]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (5)
As of 2017-01-20 20:20 GMT
Find Nodes?
    Voting Booth?
    Do you watch meteor showers?

    Results (177 votes). Check out past polls.