use strict; use LWP::UserAgent; use HTTP::Request::Common; my $data1 = "$something"; my $data2 = "someone@email.com; my $data3 = "something"; my $prepstring = "data1=$data1\&data2=$data2\&data3=$data3"; my $ua = LWP::UserAgent->new(); my $response = $ua->post("$URLtoPostTo", Content => $preppedstring ); # This allows reserved characters such as @$ to pass through URI:Escape without issue I guess.