本当は怖い情報科学

とあるHPC屋の趣味&実益ブログ

Perl

ポータブルな改行削除

つ Text::Chomp

最近、大量のテキストファイルでデータ処理をするプログラムを書いていたのですが、色々学んだので、まとめメモです。Effective C++風。ファイルを読んでファイルに書き出すプログラムを主に想定してます。あと、特にPerlに依存した話ではないです。1. 入力…

最近、開発環境(perl5.8.8 on FreeBSD6.1) のClass::DBIがだいぶおかしいことになってます。インストールの時にテストがコケまくっていたのですが、気にせずforceでインストールしました。しかし、案の定と言うかなんと言うか、insert時に変な警告は出るし…

現在、引き継いだPerlプログラムのデバッグ・保守をしているのですが、基本的に、大量のデータを処理するプログラムなので、ひとつのスクリプトが数十分〜数時間、全体で6〜10時間の間走らせておかねばなりません。どうもこのスクリプトたちは入力チェックが…

Encode::Guessでファイルのエンコーディングを自動判別するのは便利なんですが、 open my $fh, "<:encoding(Guess)", "foo.txt"; while( <$fh> ) { ... } close $fh;のようにしたとき、これって行ごとの判定になるのでしょうか?短い行で、euc-jpとUTF-8が判別されなくて困りました。仕方が無いので、フ</:encoding(guess)",>…

svkを入れてみました。環境:Debian Sarge (colinux), perl 5.8.4WindowsXP上のcoLinuxでPerl5.8.8を自分で構築して使っていたんですが、svkをインストールしようとするとSVN::COREが無いぞと怒られる。apt-get で libsvn-core-perl を入れてもだめ。という…

機種依存文字入りのShiftJISを扱う。 - D-5 出張版 ShiftJISのファイルを読み込んでUnicodeにdecodeする時にEncodeを使ってはいけない。だが、Encodeが悪い訳ではない。悪いのは機種依存文字である。もうとにかくバケバケになるのである。 よくわからないの…

てか、自分も調べながら書いたんで、間違ってたら教えてください。 Test::Baseとは何か Test::Baseというのは、要するにデータドリブンなテストを書くためのフレームワーク(?)のこと。Test::SimpleとかTest::Moreでクドクド書いていたテストをもっと簡単に…

別のプログラマが書いたコードをリファクタリングしていて気になった(というかハマった)ことがひとつ。 これはDamian先生のベスプラにも書いてあるのですが、裸のファイルハンドルはもうやめましょう( "Don't use bareword filehandles" の項)。 なぜかと…

【広告】