in reply to strict, debug and global variables

is there a way to declare them when the file is 'require'd

Yes, there is, if you can use() the module. It requires that you write your own &import routine.

use vars (); sub import { my $pkg = caller; no strict 'vars'; vars::->import(map { /(.)(.*)/; "$1$pkg\::$2" } qw/ $var1 $var2 $e +tc /); }
If you export things with the Exporter module you need to handle that:
use vars (); sub import { __PACKAGE__->export_to_level(1, @_); my $pkg = caller; no strict 'vars'; vars::->import(map { /(.)(.*)/; "$1$pkg\::$2" } qw/ $var1 $var2 $e +tc /); }

Exporter does this for you if you export the variables, so that's a much easier way...

ihb

Read argumentation in its context!