« XML:RAI XML::RSSとの比較 | メイン | EstraierによるRSS Feed検索 »

XML::RAIのバグ

XML::RAIのバグを2つほど、発見。
バージョンはXML-RAI-1.04。

XML/RAI.pmの48行目

- sub time_format { $_[0]->{__timef}=$_[1] if $_[1]; $_[0]->{__timef}; }
+ sub time_format { $_[0]->{__timef}=$_[1] if defined $_[1]; $_[0]->{__timef}; }


XML/RAI/Object.pmの51〜52行目

-     map { $_ = strftime( $timef, gmtime str2time($_->text_content) ) } @r 
-        if $timef;
+    map { $_ = ($timef) ? strftime( $timef, gmtime str2time($_->text_content) ) :
+            $_->text_content } @r;


時間をノーマライズするときに、間にgmtimeを挟み込む理由がよくわからない。
なので、PASS_THRUにしようとしたけど、うまくいかないので気づいた。

ちなみに、上記のコードは試してない。

my $rai = XML::RAI->parse($doc);
$rai->{__timef}=undef;
foreach my $item (@{$rai->items}){
	print str2time($item->issued->text_content)."\n";
}

こんな感じで無理矢理回避できる。