foreach $key (keys %form_data) { my $temp1=$key; my $temp2=$form_data{$key}; $temp1=~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; $temp2=~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg; $form_data.=$temp1.'='.$temp2.'&'; } $form_data=~s/\&$//;