You may want to try checking permissions. Also check linefeeds of you're moving the file back and forth between Windows and Unix (some ftp clients don't convert them).
I just copied both of your code snippets into two separate files and hit it with my browser and it worked. I added some parameters to the query string, and got the outputPost data printing too.
test.cgi:
#!/usr/bin/perl -w
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
require "functions.pl";
# define a hash to contain any "global" objects or variables
our %GLOBAL = (
'query' => '',
'test' => 'foobar!'
);
$GLOBAL{'query'} = new CGI;
print CGI::header();
outputTest();
outputPOST();
functions.pl:
sub outputTest
{
print $main::GLOBAL{'test'};
}
sub outputPOST
{
print $main::GLOBAL{'query'}->Vars;
}
1;
Hit the browser with http://192.168.1.102/test/test.cgi:
foobar!
Hit the browser with http://192.168.1.102/test/test.cgi?myvar=haha:
foobar!myvarhaha