Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^2: Remove new line characters from PCL file

by Anonymous Monk
on Jan 16, 2009 at 17:18 UTC ( [id://736884]=note: print w/replies, xml ) Need Help??


in reply to Re: Remove new line characters from PCL file
in thread Remove new line characters from PCL file

Hi thanks for response.

The thing is that when i open the '.dat' file and assigning it to the variable the new line character has already been evaluated and applied to the format so what i am looking for is that the script takes the line literally and not apply the new line character.

I would then be carrying out a tr// on the already changed file which would not give me the desired results, which is basically to have a mirror image of the imput file with a couple of word changes.

  • Comment on Re^2: Remove new line characters from PCL file

Replies are listed 'Best First'.
Re^3: Remove new line characters from PCL file
by gone2015 (Deacon) on Jan 16, 2009 at 18:17 UTC

    I'm guessing here... I'm guessing that this is a Win32 issue, and the '.dat' file is binary, not text...

    ...in which case the problem could be: by default Perl, when reading by <$FILE> will replace CRLF pairs by LF -- irrespective of the state of $/.   print will do the inverse on output.

    To avoid this you can: open $FILE, '<:raw', ... ; or open $FILE, '<', ... ; binmode($FILE) ;, for input and similarly for output. (See binmode and open.) Or you can use read (read), or for deeper magic, sysread (sysread).

Re^3: Remove new line characters from PCL file
by ikegami (Patriarch) on Jan 16, 2009 at 17:31 UTC

    Aside from being the default value for $/ (the end of line marker when reading), line feeds aren't special to Perl. Perl doesn't apply any formatting (contrary to what you claim).

    maybe using the ':raw' command would that work?

    That would prevent CR+LF from being transformed to LF when reading in Windows. You can use it as follows:

    binmode($FILE);
Re^3: Remove new line characters from PCL file
by andye (Curate) on Jan 16, 2009 at 17:31 UTC
    what i am looking for is that the script takes the line literally and not apply the new line character

    Perhaps it's just me, but I don't understand what you mean there - you want Perl to 'take the line literally'? (rather than taking it figuratively or metaphorically?)

    Could you re-phrase this, it's not clear (to me at least) why just taking out the newline characters with tr/// won't give you the result you want.

    update: re-reading the original question, it looks like its the concept of 'new line characters in the middle of a line' which is proving slippery. Not to sound pedantic, but I've never seen a newline character in the middle of a line. They tend to be at the end of each line.

    Do you mean that some of the newlines are ones you want to keep, and some of them are unwanted?

    How do you tell apart the ones you want versus the ones you don't want? Maybe if you were to show us a sample of the file, we'd be able to help you better.

    Or is this a UNIX-versus-DOS different-newline-characters issue?

    update2: or do you mean that some of the newline characters are (or should be) escaped?

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2024-04-20 10:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found