I have had a quick glance at your regex and when looking for
$MMDD you do
(\d\d/\d\d)\s+ which says you want at least one space after the date. However, all the dates are followed by an asterisk. Bear in mind that asterisks are regex meta-characters so you need to escape them to get literals. There may be other problems with your regex but that was the first show stopper I saw.
Looking at the data you have posted, it's columnar layout means you might be better off considering unpack. Other points:-
- Avoid using DATA as your handle name as Perl already provides you with a handle of that name for reading data contained in the script after __END__ or __DATA__ tags.
- It is recommended that you use lexical filehandles and the three argument form of open.
- It is good that you check for the success of your open but it can be useful to include $! (OS error) in the output, see perlvar.
I hope this is useful.
Cheers,
JohnGG