Your example did not work for me, and I am still unsure why. Output was Carriage return in myfile.csv at -e line 12, <INPUT> line 1. I was getting inconsistent results running it as perl -e '[BLOCK OF CODE]' myfile.csv and as perl code.pl myfile.csv. This was with Perl 5.10.1 running in Cygwin. I'm guessing it has something to do with Cygwin.
I don't know how cygwin (which emulates a system that uses CRLF line endings) interacts with the rest of the system (which uses CRLF line endings). It is definitely a likely cause. My guess: It placed \r\r\n in the .csv.