in reply to Password Hashing Issues

Just a hint - your open is failing, and you don't know, because you're not checking the return of the open command. Try this:
open( CRYPT , "MD5 -s $ARGV[0] |" ) or die "Can't open: $!";

-- Dan