I may be way out of line here (I am
not a CGI expert), but I don't think you're using any CGI objects. The point of including the CGI module is so you can use it. ;-)
#!/usr/local/bin/perl
use CGI;
use strict;
my $cgi = CGI->new;
print $cgi->header,
$cgi->start_html,
$cgi->p,
"Hello, World!",
$cgi->p,
$cgi->end_html;
Once you've created the $cgi object, you can direct your methods (header, start_html, p, end_html, etc...) against it. In your example, you're not really printing anything... "header" doesn't exist (AFAIK).
On a side note... and I expect to get thoroughly flamed (or at least lose some XP) for this, but I recently sat through a talk given by
dominus. It was altogether enlightening in understanding some of the hidden "red flags" that plague beginner- to intermediate- (perhaps even some advanced) Perl programmers. I found his philosophies on the strict pragma
particularly interesting. He made note of the (unpopular) fact that many Perl coders overuse 'use strict' without really even knowing
why they're using it. Your snippet is a perfect example... you've used strict (out of forced behavior, no doubt) without any need. What have you declared? You don't have a single var, ref, or sub.
I'm not saying that the strict pragma isn't a needed practice... just that perhaps we (I'm not excluding myself from this) should study the reasons for its practicality.
-fuzzyping
Update: Removed "qw(:standard)" from the CGI call. As
theguvnor noted, it's not necessary when using the dedicated OO format.