I'm not sure about your question regarding writing to STDIN, but does the following work for you in a POST?
#!/usr/bin/perl -wT
use strict;
my $buffer;
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
print "Content-type: text/plain\n\n";
print $buffer;
Also here is a script you may find interesting.
#!/usr/bin/perl
# Description: Takes all CGI parameters (both GET and POST data)
# and builds a query string to send as a GET request.
use CGI::Simple; # or use CGI;
use URI::Escape;
my $CGI = CGI::Simple->new; # or CGI->new;
my $query = join(
';', map {
uri_escape($_) . '=' . uri_escape($CGI->param($_))
} $CGI->param
);
# now we can send a GET rquest somewhere
$CGI->redirect('http://my.server.com/script.pl?' . $query);