Client code: my $url = "https:\/\/acct:pass\@ftp.mydomain.com/cgi-bin/upload.pl"; my $ua = LWP::UserAgent->new; $ua->agent("MyApp/0.1 "); my $file="c:\\filetoupload.txt"; $res = $ua->post($url, [ "ac" => 'upload', "file" => "$file" ] ); print $res->content, "\n"; #### ## open of the file on server open(FILE,">$upload_dir/$file_name") || &Error("Error opening file $file_name for writing, error $!", 1); binmode FILE; $time=time(); while (1) { ### fails here return code is undef. $bytes_count = read($file_query,$buff,2096); if ($bytes_count == 0) { last; }