Пакет Time::Piece
имеет strptime
метод для анализа строки в объекте времени и week
метод для указания номера недели объекта времени.
use Time::Piece;
my @dates = ('2012-01-30', ..., ...., '2012-04-06');
foreach my $strdate (@dates) {
my $date = Time::Piece->strptime($strdate, "%Y-%m-%d");
print "Number of week for '$strdate' is " . $date->week . "\n";
}
Все, что вам нужно сделать, это просто посчитать количество уникальных недель в вашем диапазоне.