I know I let this thread die, but honestly I never figured out what was going on. Running the exact same code using perl -e and perl myprog.pl produced different results, and I never determined what was causing it.
However, I figured I should probably say what I ended up doing in case someone ever reads this with a similar problem. Setting :crlf as the current layer by use open IN => ":crlf" only seemed to work for files read by the empty diamond operator, and somehow broke for explicitly opened files, so I simply turned it off after the while(<>) loop with a no open IN => ":crlf", and explicitly added the layer to each file I opened (e.g. open(INFILE, "<:crlf", "myfile.csv")). This seems to always work, but only when the global layer isn't used.
In reply to Re^2: crlf layer working on diamond operator, but not filehandle reads
by rebugger
in thread crlf layer working on diamond operator, but not filehandle reads
by rebugger
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |