Это зависит от того, сколько манипуляций с датами вы намереваетесь сделать. Сначала вам, вероятно, лучше катиться вручную, например,
my @months = qw(Jan Feb Mar Apr May Jun
Jul Aug Sep Oct Nov Dec);
my %monthnum = map { $_ => $months[ $_ - 1 ] } 1..12;
(Я предпочитаю этот подход, потому что он сравнительно очевиден: у вас есть список месяцев, затем вы отображаете их с 1..12 (числа, которые имеют смысл для человека) на 0..11 ( числа, которые имеют смысл для компьютера.) Узкие места производительности в вашем коде не будут присутствовать в таком коде, они будут в коде доступа к сети, базе данных или диске, поэтому сконцентрируйтесь на том, чтобы сделать ваш код читабельным. )
Когда вы начнете добавлять к своему коду, вы можете обнаружить, что многие из этих вещей уже сделаны существующими модулями, и, возможно, было бы легче сделать некоторые простые вещи, например, с помощью. Date :: Calc. Или вы можете найти модуль даты / времени, более подходящий для ваших нужд; это выходит за рамки этого вопроса.
Имейте также в виду, что некоторые модули используют авторазделение, когда загружаются только те части модуля, которые необходимы. Кроме того, основное влияние на производительность при использовании большого модуля - это не обязательно ОЗУ, скорее всего, это будет нагрузка на время / ЦП при его загрузке и компиляции до того, как какой-либо код выполнится.