use DBI; use File::Fetch; my $dbh = DBI->connect($dsn, $user, $password) or die "Couldn't connect to database: " . DBI->errstr; my $query = "select url FROM tablexxx where date='?'"; # << minor edit my $SQL = $dbh->prepare($query) or die "prepare: ".$dbh->errstr; $SQL-> execute('202207') or die "execute: ".$dbh->errstr; while (my $row = $sth->fetchrow_hashref) { print "url: $row->{url}\n"; # logic to get unique filename for output my $outfile = ...; my $ff = File::Fetch->new( uri => $url ); $ff->fetch(to => $outfile) or die "failed to fetch '$url' to '$outfile'."; # or get file contents in a scalar and then process them, e.g. to extract # pdf metadata e.g. date, author, and md5 hash my $contents; $ff->fetch(to => \$contents); # use PDF::API2 my %options; my $pdf = PDF::API2->from_string($contents, %options); my $author = $pdf->author(); # I wish it was that simple... you may need to sieve through all the metadata }