#!/usr/bin/perl use strict; use warnings; use DateTime::Format::Strptime; my $str = '20031105'; my $parser = DateTime::Format::Strptime->new(pattern => '%Y%m%d'); my $dt = $parser->parse_datetime($str); $dt->add(months => 3); # standard date format print $dt->date, "\n"; # or in your original formay print $parser->format_datetime($dt), "\n";