http://qs321.pair.com?node_id=1093609


in reply to I need help with the error "Modification of non-creatable array value attempted"

IPv4 addresses are 32-bit; they are often handled as integer values (uint32_t).

Perl provides pack and unpack for working with rigid-format data. For example:

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";