while ( / ^ (\d{4}-\d\d-\d\d) .*dates processed:[ ] ( (?:\d{4}-\d\d-\d\d,[ ])* \d{4}-\d\d-\d\d ) $ /mg ) { my $on = $1; my $procesed = $2; my @processed = split(/, /, $processed); # Do something with $on and @processed. }