echo -e 'animal dog bark 2\nanimal dog woof 3\nanimal cat meaow 3' | perl -MData::Dumper -lane ' ($kind, $name, $say, $count) = @F; $h{$kind}{$name}{$say} = $count; END { foreach $kind (keys %h){ foreach $name (keys %{$h{$kind}}){ @say = keys %{$h{$kind}{$name}}; print Dumper \@say; $b{$name} = \@say; } } print Dumper %b }'