Если я не могу использовать один из модулей даты, POSIX не так уж и плох, и поставляется с perl
:
use v5.10;
use POSIX qw(strftime);
my $date = '19700101';
my @times;
@times[5,4,3] = $date =~ m/\A(\d{4})(\d{2})(\d{2})\z/;
$times[5] -= 1900;
$times[4] -= 1;
# strftime(fmt, sec, min, hour, mday, mon, year, wday = -1, yday = -1, isdst = -1)
say strftime( '%d-%b-%Y', @times );
Создание @times
являетсянемного некрасиво Вы не всегда можете получить то, что хотите, но если вы попробуете иногда, вы можете найти то, что вам нужно.