Take a look at
HTTP::Request::Common.
When you create your HTTP::Request object, instead of:
$req = new HTTP::Request 'POST','http://www.eliteweaver.co.uk/testing/ipntest.php';
Put your parameter hash in as the third argument (after you've added your new param):
$req = new HTTP::Request 'POST','http://www.eliteweaver.co.uk/testing/ipntest.php',$q->Vars;
You can then delete the next two lines,
$req->content_type('application/x-www-form-urlencoded');
$req->content($q);
as the content is set in the constructor, and the correct content_type is set by default.