RPC::XMLもテストに失敗するんだけど

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)。こりは環境依存の問題なのかしらね。