for my $h (@suggestionsTemp) { push @suggestionsUnsorted, ($targets{$$h{targetL}}={targetL=>$$h{targetL}}) unless $targets{$$h{targetL}}; $targets{$$h{targetL}}{origin}{$$h{origin}}++; $targets{$$h{targetL}}{count}++; } $$_{origin} = join ', ', sort keys %{$$_{origin}} for values %targets;