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


in reply to CGI.pm idiosyncrasy?

The "base" and "vlink" tags both belong in the "start_html" method when you're using CGI.pm. There is no "body" function per se in CGI.pm, so by typing it the module is assuming you know what you're doing and pretends it's a valid tag. Your "body" function doesn't "enclose" anything, so CGI.pm makes the perfectly valid guess that "body" is a self-closing tag like "break " and puts the closing slash within the tag per XHTML 1.0 guidelines. You're getting similar problems with "base" which should also be an attribute of start_html, and not it's own function/method.

Try this instead: (untested)

print header, start_html (-title => 'Welcome to 0.0.0.0!', Link ({-rel => 'stylesheet', type => 'text/css', href => + 'style.css'}), base => 'http://0.0.0.0/cgi-bin/dir/', vlink => "Black");
For more info check out the "start_html" docs in the CGI.pm POD.

Gary Blackburn
Trained Killer