$ perl -E ' my %hash1 = ("abc" => [1, 2, 3, 4]); my %hash2 = ("abc" => [1, 3, 5, 7]); my %val1 = map {$_, 1} @{$hash1{abc}}; my %val2 = map {$_, 1} @{$hash2{abc}}; say "Values missing in hash2: ", join " ", grep {not exists $val2{$_}} keys %val1; say "Values missing in hash1: ", join " ", grep {not exists $val1{$_}} keys %val2; ' Values missing in hash2: 4 2 Values missing in hash1: 7 5