Changes to &parse_exhibitor
The next
changes in the program, at least in terms of the sequence in which
commands are actually executed, are down toward the bottom, in the
&parse_exhibitor
subroutine. The opening comment for
that routine has been updated to reflect the additional scriptwide
variables the routine will now be updating:
# extract the relevant information about a particular # exhibitor and store it in the appropriate hashes. # # invoked with an array of lines read from $exhibit_file. # has no return value, but instead modifies the following # scriptwide variables: # # %listing# %index_line
# %companies_by_letter
Toward the end of the subroutine, where it is adding the current
exhibitor’s listing to the
%listing
hash, it now includes HTML markup:
# create the %listing entry$listing{$co_name} = <<"EOF";
<H2>$co_name</H2>
<P><STRONG>Booth $booth</STRONG></P>
EOF
Also, as subsequent parts of that listing are added to
$listing{$co_name}
, the subroutine uses
if
statements to avoid adding an element if that
particular element isn’t present for this particular company.
Notice, though, how we’re using a
one-line version of the if
test that you
haven’t seen before:
$listing{$co_name} .= "<P><EM>"; $listing{$co_name} .= $address if $address; $listing{$co_name} .= "<BR>\n$address2" if $address2; $listing{$co_name} .= "<BR>\n$phone" if $phone; $listing{$co_name} .= "<BR>\n$fax (fax)" if $fax; $listing{$co_name} .= "<BR>\nEmail: <A HREF=\"mailto:$email\">$email</A>" if $email; ...
Get Perl for Web Site Management now with the O’Reilly learning platform.
O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.