print map { $$_[0] } sort { $$a[1] <=> $$b[1] } map { [ $_, join '', map { sprintf '%03d', $_ } /(\d+)/g ] } ; __DATA__ 192.168.6.10 10.10.254.253 10.10.254.3