my %comp = ( 'Ad1' => [ qw( 0A78 0A9E 0AB9 0AC0 ) ], 'Ad2' => [ qw( 0A78 0A9E 0AB9 0AC0 ) ], ); my %device; my @locations = sort keys %comp; for my $location (@locations) { for my $dev_name ( @{ $comp{$location} } ) { $device{$dev_name}{$location}++; } } my $expected_locations = join ',', @locations; for my $dev_name ( sort keys %device ) { my $actual_locations = join ',', sort keys %{$device{$dev_name}}; next if $expected_locations eq $actual_locations; print "ERR: '$dev_name' only found in '$actual_locations'\n"; }