use strict; use warnings; use feature qw{ say }; my $val = 107865; # Pre-size the vector for 80 bits. # my $vec; vec( $vec, 79, 1 ) = 0; my $offset = 0; while ( $val >= 256 ) { my $rem = $val % 256; vec( $vec, $offset ++, 8 ) = $rem; $val /= 256; } vec( $vec, $offset, 8 ) = $val; say unpack q{b*}, $vec; say qq{Bit $_: }, vec( $vec, $_, 1 ) ? q{set} : q{not set} for 0 .. 79;