Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: crlf layer working on diamond operator, but not filehandle reads

by rebugger (Acolyte)
on Nov 22, 2011 at 14:43 UTC ( #939466=note: print w/ replies, xml ) Need Help??


in reply to Re: crlf layer working on diamond operator, but not filehandle reads
in thread crlf layer working on diamond operator, but not filehandle reads

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.


Comment on Re^2: crlf layer working on diamond operator, but not filehandle reads
Select or Download Code
Re^3: crlf layer working on diamond operator, but not filehandle reads
by ikegami (Pope) on Nov 23, 2011 at 01:40 UTC

    only seemed to work for files read by the empty diamond operator

    I proved otherwise.

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://939466]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (9)
As of 2014-12-22 13:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (117 votes), past polls