M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2007年4月18日 22:53

PerlIO::eolはCPANからインストールしないと使えないよ

このエントリーをはてなブックマークに追加 mixiチェック

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 からインストールできました。

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2044

コメント(1)

データサイズが分からないので何ですが.. たとえ動いたにせよ怖い方法ですね。

ある程度のサイズを読み込んで、改行コードを確認し、改行コードの設定自体を変更するべきじゃないですかねぇ。

コメントする