my $address = "127.0.0.1"; # from decimal to hex: my ($a,$b,$c,$d) = $address =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/; my $hex_addr = sprintf "%02x.%02x.%02x.%02x", $a, $b, $c, $d; print "[$hex_addr]\n"; #prints "[7f.00.00.01]"; # from hex to decimal: my ($a, $b, $c, $d) = $hex_addr =~ /(\w+)\.(\w+)\.(\w+)\.(\w+)/; my $addr = hex($a). "." . hex($b) . "." . hex($c) . "." . hex($d); print "[$addr]\n"; #prints "[127.0.0.1]"