for my $item($doc) {
This almost certainly isn't doing what you think it is. $doc isn't a list, it's a reference to an XML::Lib document. So effectively, all you're doing there is aliasing $item to $doc. Of course you completely ignore $item within the block, so it's not doing any actual damage. But your loop is only ever being run once.
I think you actually want something more like this (but please note this is untested):
for my $item ($doc->findnodes('//channel/item')) { my $date = $item->findvalue('pubDate'); my $desc = $item->findvalue('description'); $seen{$date} = localtime; next if $SAW{$date}; push @item_output, $desc; }
But it's also worth pointing out that if you're dealing with RSS documents, then XML::RSS is far easier than using a generic XML tool like XML::LibXML.
See the Copyright notice on my home node.
"The first rule of Perl club is you do not talk about Perl club." -- Chip Salzenberg
In reply to Re: Automating an RSS feed
by davorg
in thread Automating an RSS feed
by Quicksilver
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |