my @fields = ... ; my $binary = chr(0); defined( $fields[ $_ ] ) && length( $fields[ $_ ] ) and vec( $binary, $_, 1 ) = 1 for 0 .. $#fields; #### @fields = ( 'fred', undef, '', 0, 123, ' ' );; $binary = '';; vec( $binary, $_, 1 ) = ($fields[ $_ ] // '' ) =~ /\S/ ? 1 : 0 for 0 .. $#fields;; print unpack 'b*', $binary;; 10011000