use warnings; use strict; use Mojo::DOM; my $dom = Mojo::DOM->new( do { open my $fh, '<', 'example.xhtml' or die $!; local $/; <$fh> } ); my $found = $dom->find('div[class="data"]')->map(sub { ( my $text = $_->all_text ) =~ s/\W//g; { id=>$_->attr('id'), text=>$text } })->to_array; my $out = join ', ', map { $_->{id}.'='.$_->{text} } @$found; print $out,"\n"; $out eq "Zero=, One=Monday, Two=Tuesday, Three=Wednesday, " ."Four=Thursday, Five=Friday, Six=Saturday, Seven=Sunday" ? print "Good!\n" : die "BAD!\n";