while () { ($name, @fields) = split '|'; for (0..5) { $value += 2**$_ if $fields[$_] } $people{$name} = $value; } # People with fields 0 and 3 but nothing else for (keys %people) { print if $people{$_} ^ 58; }