Perl LWP UserAgent is an amazing tool for automating web queries. Here is the simple text to get HTTP or FTP data using the Perl LWP UserAgent:
#!/usr/bin/perl
use LWP::UserAgent;
use CGI qw(header -no_debug);
# this is an awesome picture, and you wanted to get it via script....
$URL = 'http://digitalcrunch.com/wp-content/uploads/jamesfraze1.jpg';
my $res = LWP::UserAgent->new->request(new HTTP::Request GET => $URL);
# binmode helps when printing data, perl defaults data type as text
binmode(STDOUT);
# if it's a picture, print the header type and then data.
# if it's not a valid picture, print text/html header type and then the status
# note: this won't work from the command line is meant to be a CGI script!
# words with image/gif only. Use different headers for different types of image
# or alter code to account for different types.
print $res->is_success ? (header('image/gif'), $res->content)
: (header('text/html'), $res->status_line);
Just in case you were curious what it would do on the command line, here is an example: