my %xref_hash; for my $dev ( @dev_list ) { print STDOUT "looking for $dev\n"; for my $x ( @xref ) { if ( $x =~ /$dev\./i ) { my $hkey = "dev_xref_$dev"; push @{ $xref_hash{ $hkey }}, $x; } } } # to use that data structure: for my $hkey ( keys %xref_hash ) # (you might want to sort) { print join( "\n ", "\nvalues for $hkey:", @{$xref_hash{$hkey}} ), "\n"; }