while ($new_sock = $sock->accept()) { ... while (defined ($buf = <$new_sock>)) { if ($buf =~ /^VERIFY:/) { if (verify_pass($buf)) { print $new_sock "VERIFIED\n"; } else { print $new_sock "NOT VERIFIED\n"; } ... ... } sub verify_pass { ($args) = @_; ($cmd, $user, $pass) = split(/:/, $args); chomp($pass); my $uid = getpwnam $user; my $pwd = (getpwuid $uid)[1]; my $salt = substr $pwd, 0; my $enc = crypt($pass, $salt); if ($enc eq $pwd) # Meaning success { return 1; } else { return 0; } }