Como comparar duas datas
Problema
Você quer encontrar a diferença entre duas datas.
Solução
Converta as datas para "epoch seconds", ou use o módulo Date::Calc.
Discussão
Se você está guardando suas datas em segundos desde a época ("epoch seconds"), você pode simplesmente substituir uma da outra.
Se você tem uma data estruturada (ano, mês, dia, hora, minuto e segundo), então você pode transformá-la em segundos desde a época, usando timelocal ou timegm (do módulo Time::Local).
Entretanto, se você não souber o formato preciso de suas datas, então você deve provavelmente usar ou Date::Manip ou Date::Calc, do CPAN, antes de criar sua própria subrotina para lidar com formatos de datas arbitrários.
Comentários