#! perl
use strict;
use warnings;
use Data::Dumper;
use Web::Scraper;
my $sample = q{
July 12
Tim
Jon
July 13
James
Eric
Jerry
Susie
July 14
Kami
Darryl
};
# Preprocess
$sample =~ s{ ( ^ \s* < \s* h4 ) }{\n$1}gmx;
$sample =~ s{
}{};
my $names = scraper
{
process '//div[contains(@class, "foo")]', 'groups[]' =>
scraper { process 'h4', 'date' => 'TEXT';
process 'p', 'names[]' => 'TEXT'; };
};
my $temp = $names->scrape($sample);
my @res;
push @res, { $_->{'date'} => $_->{'names'} } for @{ $temp->{'groups'} };
print Dumper(\@res);