#!/usr/bin/perl

require LWP::UserAgent;
require HTTP::Request;
require HTTP::Response;

my $url = "http://news.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss091.xml";

my %options = ( agent => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)' );
my $ua = LWP::UserAgent -> new(%options);
my $request = new HTTP::Request 'GET', $url;
my $response = $ua->request($request);
if (!($response->is_success)) {
  die "Could not fetch!\n";
}

my $content = $response->content;

my %words;

while ($content =~ s/<item>.*\n.*<title>(.+)<\/title>.*\n.*<description>(.+)<\/description>//) {
  
  my $title = $1;
  my $descr = $2;
  
  $title =~ s/[^\w\d\s]+//g;
  $descr =~ s/[^\w\d\s]+//g;
  
  while ($title =~ s/([\w\d]+)\s+//) { $words{$1 . " "} = 1; }
  while ($descr =~ s/([\w\d]+)\s+//) { $words{$1 . " "} = 1; }

}

print sort keys %words;
.
