Generating the Top-level Page

We’re almost done. All that’s left is to generate the site’s top-level page. Here’s the code that does that:

# write out the top-level page

my $path      = "$base_path/index.html";
my $title     = "$show_name Exhibitor Listings";
my $alpha_bar = &make_alpha_bar;
my $date      = localtime;
my $count     = keys %listing; # how many exhibitors, total?

my $content   = <<"EOF";
<H2 ALIGN="center">$show_name Exhibitor Listings</H2>

<P ALIGN="center"><EM>Last updated $date<BR>
$count exhibitors total</EM></P>

<P><STRONG>Alphabetical Index:</STRONG></P>

$alpha_bar

<P><STRONG>Category Index:</STRONG></P>

<UL>
$cat_list
</UL>
EOF

&write_page($path, $title, $content);

There are just a few new tricks here. First, we make an alpha bar for the top-level page, but we don’t pass the subroutine a letter as an argument, so the alpha bar we get back does not have any unlinked letters.

Next, we populate the $date variable, which we’ll use to put a timestamp on the top-level page, by assigning the output of Perl’s localtime function to it. The localtime function is interesting because it behaves differently depending on whether it is in a scalar or an array context. If you put it in an array context (by assigning its output to an array variable, for example), it will return a list of various elements relating to the current date and time. If you put it in a scalar context, though (as we’ve done here, by assigning its output to a scalar variable), it returns a string describing the current ...

Get Perl for Web Site Management now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.