http://qs1969.pair.com?node_id=549393


in reply to Re: chomp() is confusing
in thread Why chomp() is not considering carriage-return

hi aufflick

I am not sure whether you have tested this program in Windows or not


If you run your script on Windows, the carrage return and newline will both be removed (since it's expected that under Windows files will end in both a carriage return and a newline).

I tested this program in windows, which is not behaving in the way you have explained.

$one = "Hello\r\n"; print "Before chomp" , length($one) , "\n"; chomp($one); print "After Chomp" , length($one) , "\n";
output:-
Before chomp 7 After Chomp 6
From that I understood that only the newline is removed in chomp, not the carriage return.

"Keep pouring your ideas"

Replies are listed 'Best First'.
Re^3: chomp() is confusing
by ikegami (Patriarch) on May 23, 2006 at 16:52 UTC

    If you want to chomp \r\n, set $/ to \r\n:

    local $/ = "\r\n"; $one = "Hello\r\n"; print "Before chomp: " , length($one) , "\n"; chomp($one); print "After Chomp: " , length($one) , "\n";
Re^3: chomp() is confusing
by aufflick (Deacon) on May 23, 2006 at 08:01 UTC
    Hmm, that doesn't sound right at all - is that perl under cygwin or with ActivState perl?