use strict; use warnings; use Data::Dumper; use Date::Manip; use LWP::Simple; use XML::Simple; # Needed on some platforms, such as Microsoft Windows &Date_Init("TZ=CST6CDT"); # Set timeframe to display entries for (-1 day apparently goes back to midnight today) my ($truncdate, $tderr); my $dateback = "-1 day"; $truncdate = DateCalc("today", $dateback, \$tderr); my $xs = new XML::Simple; # my $feedfile = 'science'; # my $ref = $xs->XMLin($feedfile); my $feedurl = 'http://rss.news.yahoo.com/rss/science'; my $feedline = get($feedurl) or die("Couldn't open feed: $!\n"); my $ref = $xs->XMLin($feedline); foreach my $item (@{$ref->{'channel'}->{'item'}}) { my $itemDate = ParseDate($item->{'pubDate'}); if (Date_Cmp($itemDate, $truncdate) > 0) { foreach (qw(title link pubDate description)) { $item->{$_} =~ s/[\r\n]+/ /g; print uc($_), "\n", $item->{$_}, "\n"; } print "\n"; } } # print Data::Dumper->Dump([\$ref], [qw(*ref)]), "\n";