I have one script that uses global variables - scalars, arrays, and hashes - declared with "use qw(...)".
The script requires a configuration file in which these variables are assigned values and which also contains a few subroutines. At some point in the script, I want to switch to a different configuration file, use its variable values and the subroutines defined therein; then I want to switch back to the original configuration file. I thought of doing alternate require-s for this purpose, i.e. to first require one configuration file, then the second, and then again the first: 1) mainscript.cgi use vars qw($this $that); require ("firstsetupfile.cgi"); print &create_code; # values and routine from first setup file require ("secondsetupfile.cgi"); print &create_code;# do the same with second configuration file require ("firstsetupfile.cgi"); # switch back .... print "$this\n"; # should print "somevalue" 2) firstsetupfile.cgi my $this = "somevalue"; my $that = "othervalue"; .... sub create_code { my $output; $output = "$this and $that"; return ($output); } 3) secondsetupfile.cgi my $this = "a completely different value"; my $that = "yet another value"; .... sub create_code { my $output; $output = "$this or $that or something else"; return ($output); } I've already noticed that arrays and hashes behave differently in the process: arrays apparently have to be undef-d, or otherwise, the new values are just added to the existing ones and don't replace them. With hashes, however, I don't have to undef; I don't really understand why. But apart from this, the approach only works for the first switch, meaning I can switch from firstsetupfile.cgi to secondsetupfile.cgi, but not back. Any suggestions? If there's a better way to do this, other than using require's, I'd be more than glad to learn of it. Best regards, Birgit Kellner -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]