=head1 NAME
CGI::HTML::Functions - Documentation for CGI.pm Legacy HTML Functionality
=head1 SYNOPSIS
Nothing here - please do not use this functionality, it is considered to
be legacy and essentially deprecated. This documentation exists solely to
aid in maintenance and migration of legacy code using this functionality
and you are strongly encouraged to migrate away from it. If you are working
on new code you should be using a template engine. For more information see
L.
If you really want to continue using the HTML generation functionality of CGI.pm
then you should take a look at L instead, which may give you a migration
path away from CGI.pm's html generation functions; i strongly encourage you to
move towards template driven page generation for anything involving markup as
it will make porting your app to other frameworks much easier in the long run.
=head1 DESCRIPTION
The documentation here should be considered an addendum to the sections in the
L documentation - the sections here are named the same as those within the
CGI perldoc.
=head1 Calling CGI.pm routines
HTML tag functions have both attributes (the attribute="value" pairs within the
tag itself) and contents (the part between the opening and closing pairs). To
distinguish between attributes and contents, CGI.pm uses the convention of
passing HTML attributes as a hash reference as the first argument, and the
contents, if any, as any subsequent arguments. It works out like
this:
Code Generated HTML
---- --------------
h1()
h1('some','contents');
some contents
h1({-align=>left});
h1({-align=>left},'contents');
contents
Many newcomers to CGI.pm are puzzled by the difference between the calling
conventions for the HTML shortcuts, which require curly braces around the HTML
tag attributes, and the calling conventions for other routines, which manage
to generate attributes without the curly brackets. Don't be confused. As a
convenience the curly braces are optional in all but the HTML shortcuts. If you
like, you can use curly braces when calling any routine that takes named
arguments. For example:
print $q->header( { -type => 'image/gif', -expires => '+3d' } );
If you use warnings, you will be warned that some CGI.pm argument names
conflict with built-in perl functions. The most frequent of these is the
-values argument, used to create multi-valued menus, radio button clusters
and the like. To get around this warning, you have several choices:
=over 4
=item 1.
Use another name for the argument, if one is available.
For example, -value is an alias for -values.
=item 2.
Change the capitalization, e.g. -Values
=item 3.
Put quotes around the argument name, e.g. '-values'
=back
=head2 Function-oriented interface HTML exports
Here is a list of the HTML related function sets you can import:
=over 4
=item B<:form>
Import all fill-out form generating methods, such as B.
=item B<:html2>
Import all methods that generate HTML 2.0 standard elements.
=item B<:html3>
Import all methods that generate HTML 3.0 elements (such as
, and ).
=item B<:html4>
Import all methods that generate HTML 4 elements (such as
, and ).
=item B<:netscape>
Import the