Adding Categories to the Company Listings
The next step is to use that
%categories_by_company
hash that was populated in the
&parse_category
routine to add category links
to the individual company listings, as stored in the
%listing
hash. Back in
the main body of the script, after the part that reads through the
category.txt
file and runs the
&parse_category
routine on the lines read from
it, we’ve added the following:
# append the category information to the company listings foreach my $co_name (keys %listing) { if ($categories_by_company{$co_name}) {
Here we’ve got an outer foreach
loop that
cycles through all the company names in %listing
(not bothering to put a sort
in front of the
keys
function, since we don’t care about the
order in which we process the companies). Inside that, we begin an
if
block that executes only if we have one or more
categories listed in the %categories_by_company
hash for this particular $co_name
. In other words,
we run the if
block only for those companies that
actually have categories.
Next, we use a function called
split
to turn the newline-separated list of
company names stored in
$categories_by_company{$co_name}
into an actual
list, and assign it to an array variable called
@categories
:
my @categories = split /\n/, $categories_by_company{$co_name};
The split
function takes a first argument that is a regular expression pattern, and a second argument that is a string to be split. Then it splits the string wherever that regex matches and returns ...
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.