O'Reilly logo

Perl for Web Site Management by John Callender

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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; ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required