my $parse_log_entry = qr/^($dateRegex.*?)(?=(?:^$dateRegex|\z))/ms; #### my $current; while ( ) { if ( /^$dateRegex/ ) { process( $current ) if defined $current; $current = $_; } else { $current .= $_; } } process( $current ) if defined $current;