Even I had a very terrible experience with the Dirty data.
There I faced a the folloing Issues :-
The record willl be splitted into multiple lines. sometimes it would be 3 lines, some times it would be more than that. Then I applied a Intelligence to my script to solve that Issue by finding a unique factor from the data file.
Then date filed in the data file willl be very horrible.
some times it would be mmddyy or sometimes it would be yymmdd and so on. we got mad because of this data file and we found very difficult to load this data in Oracle. because oracle will not load the wrong dates. Perl helped a lot for solving all those types of issues.
"Keep pouring your ideas"