#!/usr/bin/perl -w
use strict;
use Net::Gopher;
use Net::Gopher::Constants qw(:item_types);
my $ng = new Net::Gopher;
my $response = $ng->gopher_plus(
Host => 'gopher.quux.org',
Port => 70,
Selector => '/Software/Gopher/screenshots',
ItemType => GOPHER_MENU_TYPE
);
die $response->error if ($response->is_error);
foreach my $item ($response->extract_items)
{
(my $filename = $item->selector) =~ s{.*[:\\/]}{};
printf("Requesting \"%s\" from %s...\n",
$filename,
$item->host
);
my $response = $ng->request($item->as_request,
File => './screenshots/' . $filename
);
if ($response->is_error)
{
warn $response->error . "... Retry?\n";
chomp(my $redo = <STDIN>);
redo if ($redo =~ /^y(?:es)?$/i);
}
print "Saved \"$filename\" to disk.\n\n";
}
print "Now go look in ./screenshots for your images.\n";
syntax highlighted by Code2HTML, v. 0.9.1