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