おのれCRLF

Windows-Unix間ではよく問題になる改行コード
Windows上でCRLFをLFに変換するスクリプトに挑戦してみた。
まずはPerl

use strict;
use warnings;

my $filename = $ARGV[0];

unlink("$filename.org");
open(my $rfh,$filename) or die $!;
open(my $wfh,">$filename.org") or die $!;
binmode($wfh);
while(<$rfh>){
	chomp;
	print $wfh $_ . "\x0a";
}
close($rfh) or die $!;
close($wfh) or die $!;

次にruby

filename = ARGV[0]
file = open(filename)
wfile = open("test.txt","w")
wfile.binmode
while text = file.gets do
	tmp = text.chomp
	wfile.print tmp
	wfile.putc(0x0a)
end
file.close
wfile.close

どっちも突っ込みどころは満載だと思われるがそこはご愛嬌

binmodeを知らずに「ちくしょーPerlじゃ書けねー」と諦めてからrubyで書こうとしてbinmodeを知ったというのがいかにも“あかPクオリティ”