7.6 CGI.pm HTML Shortcuts


In addition to the methods discussed previously, CGI.pm has functions for most of the commonly used HTML tags, including headings ( h1() , h2() , h3() , etc.), paragraph breaks ( p() ), lists ( li() , dl() , ul() , dd() , etc.), and text-formatting commands ( i() , em() , blockquote() ). See the CGI.pm documentation for details of all the shortcuts available.

7.6.1 Using HTML Shortcuts

Using these shortcuts is as straightforward as the previous example. Printing a heading:

 <H1>Welcome to www.opensourcewebbook.com</H1> 

becomes:

 $server_name = `/bin/hostname`;  print h1("Welcome to $server_name") 

An HTML paragraph, <P> , is formatted as print p(); (no arguments), while

 print p(This is a new paragraph); 

is equivalent to this:

 <P>This is a new paragraph</P> 

A list of arguments gets concatenated . This CGI.pm code:

 $name = John Doe;  print p(hello , $name, , how are you?); 

results in this:

 <P>hello John Doe, how are you?</P> 

Like HTML commands, the shortcuts can be nested inside one another:

 <P>Here is some <B>bold</B> text</P> 

The previous statement can be programmed in CGI.pm as

 print p(Here is some , b(bold),  text); 

We can use one example to show many of these methods. The following program uses these shortcuts and others as well as a Perl built-in function ( localtime() ) and a CGI.pm method ( server_name() ). In the end, with all this fancy Perl programming, this program creates the same web page created in the earlier example (see Figure 7.5) but in a much more flexible way:

 #! /usr/bin/perl  # info3.cgi  use strict;  use CGI:standard;  my $host = server_name();  my $date = localtime();  print      header(),      start_html(-title   => System Information,                 -bgcolor => #520063,                 -text    => #ffffff),      h1("Hello from $host!"),      "The current time is now: $date",      end_html(); 

After CGI.pm is use d, the program gets the local time and the hostname, as in the earlier example. The server_name() function, provided by CGI.pm, returns the name of the webserver . The localtime() function is a Perl built-in function that determines the local time on the machine; when assigned to a scalar, here $date , it returns the time in a nice, readable format. After these dynamic values are obtained, the HTML is printed, using the just-obtained values of $host and $date .

7.6.2 Named Parameters versus Ordered Arguments

When we executed start_html() , we used named parameters ”for example, -title and -bgcolor . CGI.pm provides this way of invoking functions so that we can pass a lot of data into them in a readable, maintainable way. But there is another way of calling CGI.pm functions, which is based on the order of arguments.

For instance, we could invoke start_html() as:

 print start_html(-title => My Title); 

or by order, as in:

 print start_html(My Title); 

CGI.pm is written so that if named parameters are not used, it knows the order of the arguments. We know that the first argument to start_html() is the title. This invites the question, What is the second argument? This difficult-to-remember detail is obtainable by quickly skimming the documents ( perldoc CGI ).



Open Source Development with Lamp
Open Source Development with LAMP: Using Linux, Apache, MySQL, Perl, and PHP
ISBN: 020177061X
EAN: 2147483647
Year: 2002
Pages: 136

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net