use 5.022; use warnings; my @netmasks; my $value = 0xfffffffe; for my $maskLen ( reverse 0 .. 31 ) { unshift @netmasks, pack q{N}, $value; $value = do { no warnings qw{ portable }; ( $value <<= 1 ) % 0x100000000; }; } say for map { unpack q{B32}, $_ } @netmasks;