in reply to Hmm I get this error from $q's

This piece of script isn't helpful. It either got mangled when you posted it, or you "trimmed" it and cut out the useful bits.

Generally the error "can't call method X on undefined value" means that at that point in your code you said:

and $y happened to be undefined at that time. Why? Look earlier in your code where you created $y with something like:
$y=new Class
The creation failed or you didn't create the object (usually with new) at all.

I'm betting that you said $q->param() somewhere but never actually said $q=new CGI; beforehand to create the CGI object. But that's just my wild guess.

Sorry to be vauge, but your posting wasn't really helpful.