in reply to @ in regex, or not?

I think that $entry may not be getting initialized properly. I tested your regex with the \@ and it appears to work fine. eg:
$entry = 'a.address@host.com'; if ($entry !~ /^([a-zA-Z0-9\@_.]*)$/) { print "Doh!\n"; exit; } print "Found it\n";
prints "Found it!"