あなたの最新のコメントから、ログの最後のタイムスタンプとその 5 分前のエントリを見つける方法に関心があることが分かります。
Jim Garrison のソリューションにパッチを適用して、これを置き換えることができると思います。
$now = time();
これとともに:
open F, "<server.log" or die $!;
seek F,-1000,2; # set pos to last 1000 bytes
my @f = <F>;
$_ = $f[$#f];
($yy,$mm,$dd,$h,$m,$s,$t) = /^(\d+)-(\d+)-(\d+)\s+(\d+):(\d+):(\d+),(\d+)/;
$now = mktime($s+$t/1000, $m, $h, $dd, $mm-1, $yy-1900);
$now
ログに最後のタイムスタンプが含まれるようになりました。
「-1000」は、ログの少なくとも 1 行を超えるのに十分な長さに概算しました。ログに長い行があると予想される場合は、もっと高く設定することもできますが、私が見たところ、最後のログ エントリはかなり短くする必要があります。
巨大なログ ファイルがあり、次の検索でパフォーマンスを向上させたい場合は、見積もりを使用してシークを実行し、ファイル内の最後の、たとえば 1000000 バイトを見つけることができます。
seek F, -1000000, 2;
幸運を!