http://www.perlmonks.org?node_id=167153


in reply to Uninitialised value in string error(was: Debug pukes here.)

This could be any number of things, but basically it means that the first part of your if condition is uninitialized. This could be because the $q object wasn't created, for example, or it could be that you have parentheses where you should have curly braces. Try this instead:
if ($q->param{'field'} eq "") { # Note that 'field' has curlies now &printform() } else { &results() }
While I'm at it, I'm betting that the & isn't really needed (and may have unwanted side effects) here. See A question of style for more information.
"One word of warning: if you meet a bunch of Perl programmers on the bus or something, don't look them in the eye. They've been known to try to convert the young into Perl monks." - Frank Willison