I have a Perl script that runs a lengthy process and watches its command line output (log messages), some of which have multiple lines. After he has a full log message, he sends it for processing and captures the next log message.
open(PS_F, "run.bat |") or die $!;
$logMessage = "";
while (<PS_F>) {
$lineRead = $_;
if ($lineRead =~ m!(\d{4}-\d{2}-\d{2}\ \d{2}:\d{2}:\d{2})!) {
$logMessage = $lineRead;
}
else {
$logMessage = $logMessage.$_;
}
}
close(PS_F);
In its current form, do I have to worry about reading and processing "backup" strings? For example, if I get a new log message every 1 second, and it takes 5 seconds to complete all the processing (random numbers that I pulled out), do I need to worry about skipping log messages or memory problems?