in reply to Re^7: Perl Errors
in thread Perl Errors

I withdraw this post and replace with: You were right. Reading a basic tutorial and paying attention to chomp would help. Sorry I'm not used to /n being auto included. Usually I have to tell the program to start a new line.

Replies are listed 'Best First'.
Re^9: Perl Errors
by Marshall (Canon) on Mar 28, 2012 at 00:21 UTC
    chomp() will remove the end of line character(s).
    On Windows these will be 0xOA, 0x0D.
    On Unix this just 0x0D.

    Perl is permissive about what it receives for a text line. chomp() will remove the end-of-line character(s) - might be 1 or might be 2 bytes.

    When Perl writes a line: print "something\n"; , that \n may be one or two characters depending upon the OS and the context (network communication uses 0xOA, 0x0D - no matter what the OS) - but Perl knows about this and does the "right thing".

    If I transfer a file from Windows to Unix, sometimes I need to do something like this to "convert" the file:

    while (<STDIN>) { chomp; #remove line endings print "$_\n"; #write this OS's line ending }
    "chomp()" is your friend as opposed to "chop()". chop() is seldom used.
    The 'C' functions that read lines do the "chomp" automatically for you.
    In Perl you have to do this yourself.