in reply to My perl interpreter won't even look at it. It's that bad.

My first thought was to suggest 'perl -c filename' to do a syntax check, or to run the code through perltidy to see what it might do.

Instead, I downloaded the code, removed the first few lines where the download page gave the error message you received, had to comment out the use of EmailValid (which I did not have), named it as "too_many_errors.pl", and got the following with perl 5.6.1:

# perl -c too_many_errors.pl syntax error at too_many_errors.pl line 176, near ");" syntax error at too_many_errors.pl line 201, near ");" syntax error at too_many_errors.pl line 228, near ");" syntax error at too_many_errors.pl line 253, near ");" syntax error at too_many_errors.pl line 278, near ");" syntax error at too_many_errors.pl line 303, near ");" syntax error at too_many_errors.pl line 327, near ");" syntax error at too_many_errors.pl line 351, near ");" syntax error at too_many_errors.pl line 376, near ");" syntax error at too_many_errors.pl line 401, near ");" too_many_errors.pl has too many errors.

As best I could tell, these lines are in the else sections for update_* functions, are appear that there may be a closing parenthesis missing on each of those lines before the semi-colon.

Hope that helps somewhat. I don't do much work with objects personally, but I expect and hope that others will be able to provide you with other hints/tips/observations in that area.