#!/usr/bin/perl use strict; use warnings; use File::Fetch; my $url="http://www.ekey.net/downloads-475?download=2132cbe2-2fb1-eeff-583c-50a39b6aba6c&name=v2_ITA_12-Seiter_Programm_1207_web$ print "Downloading $url\n"; my $ff = File::Fetch->new(uri => $url); { #-- ugly patch package File::Fetch; print "PATCHED: ", __PACKAGE__, " version $VERSION!\n"; #-- patched line#0 sub output_file { my $self = shift; my $file = $self->file; $self->{_out} = $_[0] if $_[0]; #-- patched line#1 return $self->{_out} if $self->{_out}; #-- patched line#2 $file =~ s/\?.*$//g; $file ||= $self->file_default; return $file; } } package main; print "Before: ", $ff->output_file,"\n"; $ff->output_file("i-probably-violate-terms-of-use.pdf"); #-- or extract name from URI using a regex print "After : ", $ff->output_file,"\n"; my $where = $ff->fetch( to => "ekey corpus" ) or $ff->error; #### ... PATCHED: File::Fetch version 0.48! Before: downloads-475 After : i-probably-violate-terms-of-use.pdf ...