in reply to Special behavior for LF and CR in RegExs?

what about just this?
my @records = split($/, $data);
Update: Your original code will work if you add the /g modifier to the substitutions..
perl -le '$_="blah\r\nfoo\r\nstuff\r\n"; s/\012/\015/g; s/\015+/\015/g +; print join ":", split(/\015/,$_)'