#!/usr/bin/perl use warnings; use strict; my @all = qw( 2770 27700 27701 27702 27703 27707 27709 277 0704 07049 1a 1b 1c 1d 1e 1f 1g 1h ); my @diag_group_A = qw( 2770 27700 27701 27702 27703 27707 27709 ); my @diag_group_B = qw( 277 ); my ( %is_in_groupA, %is_in_groupB, %is_unspecified, ); @is_in_groupA{ @diag_group_A } = (1) x @diag_group_B; @is_in_groupB{ @diag_group_B } = (1) x @diag_group_B; $is_unspecified{$_} = 1 for grep ! $is_in_groupA{$_} && ! $is_in_groupB{$_}, @all;