http://qs1969.pair.com?node_id=556793


in reply to Accessing CGI objects from within a 'require'-ed file?

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