#!/usr/bin/perl
use strict;use diagnostics;use warnings;
use Getopt::Long;
use HTML::TreeBuilder;
use LWP::Simple;
use File::Temp;
our $url;
GetOptions(\'--url=s\' => \\$url) or die("Error in command line arguments\\n");
die "invalid url" unless $url =~ m@^http(s)?://www.flickr.com/photos/@;
my $h = HTML::TreeBuilder->new_from_url($url);
my $image_uri = $h -> look_down(\'_tag\' => \'link\', \'rel\' => \'image_src\', sub {
return $_[0]->attr(\'href\');
});
my $data = get( $image_uri->{\'href\'});
my $fh = File::Temp->new(TEMPLATE => \'flickrXXXXXXXXXX\', UNLINK => 0, SUFFIX=>\'.jpg\');
my $outfile = $fh->filename;
print $fh "$data";
close $fh;
print "$url saved to $outfile!\\n";