use strict; use warnings; use LWP; use IO::Handle; use Fatal qw( open close ); my $url = 'https://........'; my filename = 'file2send.txt'; my $LINES_PER_CHUNK = 100; open my $fh, '<', $filename; sub sendthis { my @buf; my $linesread = 0; if ($fh->isopened) { while (my $line = <$fh>) { $linesread++; push(@buf, $line); if ($linesread == $LINES_PER_CHUNK) { return join('', @buf); } } close $fh; return join('', @buf); } return ''; } eval { my $headers = HTTP::Headers->new(); $headers->header('Content-Type' => 'text/plain; charset=utf-8'); $headers->header('Content-Length' => -s $file2send); my $request = HTTP::Request->new('POST', $url, $headers); $request->protocol('HTTP/1.1'); my $browser = LWP::UserAgent->new(); my $response = $browser->request($request, \&sendthis); my $gotthis = $response->content(); print $gotthis; }; if ($@) { # handle error ! }