my ($y, $m, $d) = unpack('a4a2a2', $str); #### my $y = substr($str, 0, 4); my $m = substr($str, 4, 2); my $d = substr($str, 6, 2); #### my ($y, $m, $d) = $str =~ /(.{4})(.{2})(.{2})/; #### $str =~ /(.{4})/g; my $y = $1; $str =~ /(.{2})/g; my $m = $1; $str =~ /(.{2})/g; my $d = $1; #### my ($y, $m, $d) = map { 0+$_ } unpack('a4a2a2', $str); #### printf("%04d/%02d/%02d\n", $y, $m, $d); #### $formatted = sprintf("%04d/%02d/%02d", $y, $m, $d);