if($name ne $user) {
so, unless every entry in the USERNAME file holds the name in question, this will match and quit with ERR.
Also, your way of reading the file
while(<USERNAME>) # reads first entry
{
my @newusername = <USERNAME>; # reads remaining entries
foreach $name (@newusername)
...
skips the first entry for the comparison...
Try something like this:
...
my $found;
while (my $name = <USERNAME>) {
if ($name eq $user) {
$found = 1;
last;
}
}
unless ($found) {
print $client_socket "ERR\n";
...
exit;
}
print $client_socket "ACK\n";
And either chomp both $user and $name, or none. As you have it, $name has a trailing \n, while $user hasn't.
|