# get the User, or go to login page
my $user = new GWAK::User()
or GWAK::User->redirect_to_login(GWAK::User->errstr);
seems to contain your problem. So what are you really trying to attempt here? check if the user exists? if the user is valid? logged in? Well, if thats fine, but if not, how could there be an User object that supports this method?
Have a nice day
All decision is left to your taste
Update
While your code is
not a production release you might want to add the line
use CGI::Carp qw(fatalsToBrowser);
which would bring errors occuring due to the usage of warnings and strict (you do use those, don't you?) directly to your browser. Using diagnostics might give even more detailed reasons if an error occures :-)