in reply to [untitled node, ID 158203]

Your immediate problem is in this line   if ($form{pass} == $password) { The comparison operator you're using (==) is for numbers. You want 'eq', which compares strings. You'll also want to carefully check your error handling, to ensure that a content header gets printed when the password doesn't match.

You have major problems on two other fronts. First, it is good practice to   use strict; at the top of your modules. This will keep you out of trouble on numerous fronts.

Second, you're rolling your own CGI form parsing, which is Bad, Bad, Bad. Time invested learning the CGI module will pay dividends.