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

I just started looking at this, but one of your main problems (that I have seen so far), in it not compiling is that you have a lot of code like:
return( &generate_line_form_element( DIFFERENT_STUFF );
All of which seem to be missing the last ) . You also have an elseif not an elsif in there.

I just had an idea, I am assuming that you are calling user.pm from another script, and have not yet debugged user.pm. You can just run the .pm like a .pl file, and debug that, but here is a start to fixing your problems, now that I realized (I think) what you're probably doing.

-enlil