($x eq $y)
####
((defined($x) && defined($y) && ($x eq $y))
|| (!defined($x) && !defined($y))
####
my $foo = {
aa => { O => 'zz', C => 'yy' },
bb => { O => 'xx', C => 'xx' },
cc => { O => undef, C => 'ww' },
dd => { O => 'vv', C => undef },
ee => { O => undef, C => undef },
ff => { C => undef },
gg => { O => 0, C => 0 },
hh => { O => undef, C => 0 },
};
####
sub f
{
my ($h) = @_;
grep
{
!exists($h->{$_}->{O})
|| (defined($h->{$_}->{O})?
(defined($h->{$_}->{C})?
($h->{$_}->{O} ne $h->{$_}->{C})
: 1)
: defined($h->{$_}->{C}))
} keys %$h
}