in reply to LWP+cgi file upload problems

You might need to specify multipart/form-data encoding in your LWP program:
my $req = POST 'http://www.perfectmotion.co.uk/upload4s.cgi', [ 'c:\test.bat', '111', Content-type => 'multipart/form-data' ];
This is untested. See HTTP::Request::Common for more details.