Time::Pieceが便利。
標準関数のlocaltimeをオーバーライドし、Time::Pieceオブジェクトを返してくれる。
後方互換なので標準関数的な書き方でもOK。
例えば、その日の00:00:00のunix timeが欲しいときはこんな感じで。
use Time::Local;
use Time::Piece;
my $t = Time::Piece->strptime(localtime()->ymd, '%Y-%m-%d');
print $t->ymd, ' ', $t->hms, "\n";
print $t->epoch, "\n";