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


in reply to Re: Re: Creating a login page
in thread Creating a login page

As japh said, you forgot the line:

my $query = CGI::new;
which generates a CGI object stored in $query. From then on, you can call methods (header() and such) on the object, while the object knows it's a CGI object (package CGI, and thus knows to find those methods in the CGI module.

If you forget to initialize the object, you'd be trying to call methods on an undefined value, which doesn't belong to a package, simply because it's undefined.