use Math::BigInt (); sub ipv6_mask { my $bits = shift; my $mask = Math::BigInt->new( 2 )->bpow( 128 ) - Math::BigInt->new( 2 )->bpow( 128 - $bits ); return $mask->as_hex; }