Windows版 Perl で挿入した改行が \r\n になってしまう

#!/bin/env perl
open my $out, '>', 'test.txt'; 
# 改行が \n ではなく、\r\n になってしまう
print $out 'Windows 版の Perl だと改行が \\r\\n になってしまう', "\n";
close $out;

binmode でファイルポインタを指定すれば解決する

標準入出力やオープンしたファイルは通常テキストモードになっています。この状態でバイナリファイルを読み書きすると、0a と 0d 0a の自動変換が働いてしまい、データが壊れてしまいます
Windows でバイナリファイルを読み込む際には、binmode() を用いて、指定したファイルハンドルをバイナリモードに設定する必要があります。UNIX では binmode() を呼び出しても何の変化もありません。

http://www.tohoho-web.com/perl/binary.htm

というのが原因となる。

#!/bin/env perl
open my $out, '>', 'test.txt'; 
# バイナリモードで動作するように設定
binmode($out);
print $out 'binmode を使うと、改行が \\n になる', "\n";
close $out;