#!/usr/bin/perl # https://perlmonks.org/?node_id=1222551 use strict; use warnings; use Data::Dumper; my %hash; $hash{ $& x /\S+/g }{ $& x //g } = 1 while ; $_ = [ keys %$_ ] for values %hash; print Dumper \%hash; __DATA__ snake fangs snake tail snake fangs bird feathers bird beak snake scales bird beak bird claw bird wings