in reply to Re^6: different length of a line from linux and windows textfile? (still wrong)
in thread different length of a line from linux and windows textfile?

Maybe I'm not understanding your point, but according to my tests chomp sill strips out "\r" when using binmode on Windows.

D:\test>od -c win32.txt 0000000 l i n e o n e \r \n l i n e +t 0000020 w o \r \n 0000024 D:\test>od -c nix.txt 0000000 l i n e o n e \r \n l i n e +t 0000020 w o \r \n 0000024 D:\test>perl -wpi.bak -e "BEGIN{binmode STDIN; binmode STDOUT;} chomp +$_;" win32.txt D:\test>perl -wpi.bak -e "BEGIN{binmode STDIN; binmode STDOUT;} chomp +$_;" nix.txt D:\test>od -c win32.txt 0000000 l i n e o n e l i n e t w +o 0000020 D:\test>od -c nix.txt 0000000 l i n e o n e l i n e t w +o 0000020
  • Comment on Re^7: different length of a line from linux and windows textfile? (still wrong)
  • Download Code

Replies are listed 'Best First'.
Re^8: different length of a line from linux and windows textfile? (STDIN)
by tye (Sage) on Mar 17, 2014 at 23:51 UTC

    "perl -p" uses <> not <STDIN> so your binmode STDIN does nothing (or at least happens too late, I'm not going to bother to swap in the exact details right now).

    > perl -e "binmode STDIN; binmode STDOUT; while(<STDIN>){ chomp $_; p +rint }" <win32.txt >win32.out > od -c win32.out 0000000 l i n e o n e \r l i n e t +w 0000020 o \r 0000022

    - tye