#!/usr/bin/perl ############################################################################# # # Get the most recent version of File::Scan module from CPAN # Last Change: Sat Jan 4 16:42:17 WET 2003 # Copyright (c) 2005 Henrique Dias <hdias@aesbuc.pt> # ############################################################################# use strict; use LWP::UserAgent; use HTTP::Request; use HTTP::Response; my $VERSION = "0.01"; my $module = "File::Scan"; my $dir = ""; my $cpan = "http://www.cpan.org/authors/id/H/HD/HDIAS"; my $url = "http://search.cpan.org/search?mode=module&format=xml&query=$module"; &main(); sub main { my $content = &get_content($url); $content =~ /<VERSION>(\d+\.\d+)<\/VERSION>/i; my $file = "File-Scan-$1.tar.gz"; &save($file, &get_content("$cpan/$file")); exit(0); } sub save { my $file = shift; my $content = shift; $file = "$dir/$file" if($dir); open(FILE, ">$file") or die("$!"); binmode(FILE); print FILE $content; close(FILE); return(); } sub get_content { my $url = shift; my $req = HTTP::Request->new(GET => $url); my $ua = LWP::UserAgent->new(); my $response = $ua->request($req); if($response->is_error()) { print $response->status_line . "\n"; exit(0); } my $content = $response->content(); return($content); }