my $data = {}; foreach my $item ( @list ) { my $span = $tree->look_down( _tag => 'span' ); my $title = $span->as_trimmed_text() . $span->right(); for my $row ( $tree->look_down( _tag => q{tr} )) { my @keys = $row->look_down( _tag => q{th} ); my @vals = $row->look_down( _tag => q{td} ); for ( my $i = 0; $i < scalar @keys; $i++ ) { my $key = $keys[ $i ]->as_trimmed_text(); my $val = $vals[ $i ]->as_trimmed_text(); $data->{ $title }{ $key } = $val; } } } print 'data: ' . Dumper( $data ); }