my $ip = "123.223.11.22"; my @ip = split /\./, $ip; my $p = pack "C4", @ip; # packed as 4-octet thing my $x = unpack "N", $p; # ip as unsigned int # work on integer values, e.g. masking is just ($x & $y) $p = pack "N", $x; # re-pack the value my $bitvec = unpack "B32", $p; my $quad = join q(.), unpack "C4", $p; print "as bitvector: $bitvec\n"; print "as dotted quad: $quad\n";