PerlIO::eolはCPANからインストールしないと使えないよ
スポンサードリンク
DTP tech. Note:[01536] 改行コードの変換方法 [www.seuzo.jp]
今、Windows XPのActivePerl 5.8.8でスクリプトを作成しているのですが、
入力したいファイルはMacで作成したファイルのため、
ファイル内容が入力できません。
調べてみたら改行コードが影響しているようなのですが、
$_ =~ s/\r/\r\n/g;
これをopen後に配置しても状況は変わりません。
Macで作成したファイルをActivePerlで読み取る方法を教えて下さい。
ということで、
D-5 出張版:■[開発] Perl vs Windows改行コード [d.hatena.ne.jp]
use strict; open(FILE, $ARGV[0]); binmode(FILE, ":raw:eol(LF)"); while (<FILE>) { print; }
これいいね。ファイルの改行コードがCR、LF、CRLFのどれでもeol(X)で指定したXの値に統一してくれる。
を思い出したのですが、これって、CPAN から入れないと動かない。悪いことに、入れない時もエラーメッセージが出ない。
気付かずに Perl くそとか言ってそうな人もいそうなので書いときますね。
最近の ActivePerl は GUI でモジュールインストールできるので、PerlIO::eol を選択してインストールできると思いますが、PPM で存在しているかは調べていないんですけど。うちの Linux の Perl 5.8.6 だと CPAN からインストールできました。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2044
データサイズが分からないので何ですが.. たとえ動いたにせよ怖い方法ですね。
ある程度のサイズを読み込んで、改行コードを確認し、改行コードの設定自体を変更するべきじゃないですかねぇ。