Hatena::Formatterいれようとしたら、依存で入るRPC::XMLがテストで引っかかる。普通のCPANユーザはテストくらい失敗しても気にせずforce installしちゃうもんなのか。
このテストが失敗する原因はどうも、t/10_data.tの34行目あたりの以下のコードが問題のよう。
my @vals = \(int(rand 10000) + 1, int(rand 10000) + 1, rand 10001, __FILE__);
としている最後の__FILE__が定数扱いになるようだ。その直後のコードの、
%val_tbl = ( 'int' => bless(shift(@vals), "Tmp::Scalar::Int"), i4 => bless(shift(@vals), "Tmp::Scalar::I4"), double => bless(shift(@vals), "Tmp::Scalar::Double"), string => bless(shift(@vals), "Tmp::Scalar::String") );
の最後のblessが定数である、__FILE__に変更を加えることになる。それで、Modification of a read-only valueエラーが発生するみたい。このコードは文字列であれば別に__FILE__でなくても良さそうなので、はじめのコードを
my $tmp_FILE = __FILE__; my @vals = \(int(rand 10000) + 1, int(rand 10000) + 1, rand 10001, $tmp_FILE);
というように文字列コピーして変数に格納するとテストが成功するようになる。
これきちんとどこいぞかに報告すべきなんかしらね。
追記
別のマシン(Ubuntu breezy Perl5.8.7)でinstallするとすんなりテストが通りました。上の作業の環境は、Mac OS X 10.4.6 Perl5.8.8(darwinports)。こりは環境依存の問題なのかしらね。