in reply to chomp not working

You're probably dealing with a unix formatted file, which has "\012" as the newline sequence, while windows uses "\015\012". By default perl only recognizes the standard OS newline sequence.

A quick fix would be to set $/ to "\012" prior to reading the file.

See also perlport chomp and perlio

Replies are listed 'Best First'.
Re^2: chomp not working
by ikegami (Patriarch) on Dec 06, 2007 at 22:09 UTC

    That's not going to help. $/ already is "\012" on Windows.

    When reading, "\015\012" is converted to "\012" in one of the PerlIO layers, before readline gets a hold of the data, and therefore before $/ is applied.

    When writing, "\012" is converted to "\015\012" in one of the PerlIO layers, after print sends off the data, and therefore after $\ is applied. That's why "\n" ("\012") is used instead of "\r\n" ("\015\012") when ending a line.

    Maybe binmode is on, in which case the "\015\012" wouldn't be changed to "\012".
    Maybe the file is in the old Mac format ("\015").
    Maybe the file is in some corrupted format ("\015\015\012", which would look like "\015\012" when $/ is applied).