$foo = '1.23.456.78'; print join '.', map {sprintf("%03d", $_)} split(/\./, $foo); #### print join '.', grep{s/ /-/g} map {sprintf("%03d", $_)} split(/\./, $foo);