#! perl use strict; use warnings; my @fields = (42, undef, 'abc', undef, 'foo', 'bar'); my $flags = 0; my $mask = 0b1000_0000; for my $field (@fields) { $flags |= $mask if defined $field; $mask >>= 1; } printf "%08b\n", $flags;