Это то, для чего Дата :: Parse .
Вы указываете язык и соответствующий формат даты, например (скопировано из документации):
$lang = Date::Language->new('German');
$lang->str2time("25 Jun 1996 21:09:55 +0100");
Выше будет возвращено значение "эпохи", значение времени unix АКА (что вам нужно).
Редактировать : для вашего сообщения вам нужна только строка канонической даты, например, yyyy-mmm-ddd и т. Д., Поэтому вы можете вызвать POSIX :: strftime для этого. Кроме того, ваш формат даты по умолчанию , поэтому вам не потребуется языковой вызов:
...
use Date::Parse;
use POSIX qw(strftime);
my $sec = str2time('Sat Aug 07 04:42:21 2010');
my $ymd = strftime "%Y%m%d%H%M%S", gmtime($sec);
print "$ymd\n";
...
Результат:
20100807024221
Привет
БВУ