It's suspicious that both deletions come at quotes (doubled double quotes in the the first instance, and single quotes in the second) combined with your mentioning CSV, which usually needs to do some quotes handling. Also, as
graff did, I downloaded your code and example and I didn't see the problem (runing on a Win2000 box, perl v5.8.8).
Putting these together, I wonder if you might not be running the code you think you're running. If you totally rule that out, then the presence of a non-visible character, other than "\r", maybe the culprit, as graff suggests in in his recomendation to use "od" or "xxd", or in some other way there's somethink going on that doesn't show up in the example text.