open (READER, "$file") or die "Can't read: $!\n"; my $req = HTTP::Request->new('PUT', "$url", undef, \&read_file_in_chunks(\*READER)); sub read_file_in_chunks { my ($fh_ref) = @_; my $content; read ($fh_ref, $content, 51200); return $content; }