После того, как вы откроете журнал, я хотел бы рассмотреть возможность использования File :: Tail или File :: Tail :: App , чтобы отобразить его в процессе записи, а не спать и читать. File::Tail::App
особенно умен, потому что он обнаружит, что файл вращается и переключится, и запомнит, где вы находились между вызовами вашей программы.
Я бы также подумал о блокировке файла кеша перед его использованием. Состояние гонки может вас не беспокоить, но если несколько человек попытаются запустить вашу программу одновременно, это может привести к неприятным схваткам за то, кто записывает данные в файл кэша.
Однако оба из них - отрывки. Мой краткий взгляд на ваш код не выявляет явных ошибок.