Building a Form
Now let’s turn our attention to the
&show_student_form
routine. When this routine runs, it
produces an HTML page that looks something like Figure 17-1.

Figure 17-1. Form produced by the make_page.cgi script
Examining the subroutine code in more detail, we see that after some preliminaries it has the following:
$content = join "\n",
"<P ALIGN=\"center\"><STRONG><A HREF=\"$web_root/maint/make_page.cgi\">Return to
the maintenance page</A></STRONG></P>",
'<H1 ALIGN="center">Make a student page</H1>',
start_form,
'<TABLE><TR><TD ALIGN="right">',
b('Teacher:'),
'</TD><TD>',And so on. This demonstrates another Perl idiom
that seems to show up a lot in my CGI scripts: long chains of
arguments to the join function. I often use long
join statements, connecting (via
\n, or some other suitable joining string) a long
list of form elements and HTML embellishment. I tend to use single
quotes to enclose the HTML, which saves me from having to backslash
all the embedded double quotes surrounding the HTML attributes. This
means I can’t interpolate variables into the strings, but
that’s okay with me because I just terminate the single-quoted
string, throw in a comma, and add the variable as another element in
that long chain of join arguments. This works
nicely for CGI.pm functions, which can’t
easily be interpolated inside double-quoted strings the way variables
can.
I also sometimes ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access