Very minor quibble, and not about Perl. But Apache creates the the timestamp from when the request is received yet writes to the file when the request is served. So, if you've got requests that take a long time to return, or lots of requests that take a very short time, you logs won't be ordered by time.
So, if it's 12:00, and A is a long-running request that started at 11:44 and B is a short-running request, the order of events could be
11:44:00...
A received
11:45:10...
B receievd
11:45:11...
B served
11:46:00...
A served
and the log will read
11:45:11 B
11:44:00 A
in that order, so your backward search would stop at A.
If "last 15 minutes" means "approximately last 15 minutes" and your server is relatively zippy, you're fine. I have sometimes needed 15 minutes to mean "exactly 15 minutes", though, so I happen to know this trivial about Apache.