use LWP::UserAgent; use HTTP::Request::Common; use Digest::MD5::File qw(file_md5_hex); use File::Slurp; #text file to upload my $text_file = 'file.txt'; #calulate Content-MD5 Header my $md5hash = file_md5_hex($text_file); #read file my $file_contents = read_file($text_file); #fields to post my %post_parameters = ( 'a' => 'red', 'b' => 'blue', 'c' => 'green' ); $ua = LWP::UserAgent->new(); $ua->agent('Blah/Perl'); $ua->post( 'http://amazonmws.blah', Content_Type =>'form-data', Content-MD5 => $md5hash, Content => [ file => [ $file_contents, $text_file ], %post_parameters ], ); print STDERR $rsp->status_line;