package base::Vars;
# Actually a bunch of others vars in here, but I'm simplifying.
use vars qw( %runSwitches );
our @ISA = qw(Exporter);
our @EXPORT = qw(%runSwitches);
####
package main;
use base::Vars qw(%runSwitches);
use vars qw(%runSwitches);
my $hostname = `hostname`; chop($hostname);
if($hostname eq 'ISL06){
$runSwitches{directories} = {stat_out => '/net/httpd/htdocs/projects/reconciler',
DRMetrics => '/net/DRMetrics' ...}
elsif{ ....}{}
####
package safer::Indenture::facetsIn;
use strict;
use base::Vars qw(%runSwitches);
use Carp;
sub orionDirs{
print("safer::Indenture::facetsIn's directories: " ,
join(' ', sort keys %{$runSwitches{directories}}),
"\n");
print("base::Vars::runSwitches' directories: ",
join(' ', sort keys %{$base::Vars::runSwitches{directories}}),
"\n");
print("main::runSwitches{directories}'s directories: " ,
join(' ', sort keys %{$main::runSwitches{directories}}),
"\n");
croak unless $runSwitches{directories}{orion_reqs}
...}
####
package main;
use strict;
use base::whereami;
use safer::Indenture::facetsIn qw(orionDirs);
&orionDirs();
1
####
perl -w test/ipack
safer::Indenture::facetsIn::runSwitches's directories:
base::Vars::runSwitches' directories:
main::runSwitches's directories: DRMetrics base external_cgi_bin external_images external_ont external_rec knowledge ontology orion_reqs stat_out ucfDir
####
perl -dw test/ipack.pl
Loading DB routines from perl5db.pl version 1.33
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main::(test/ipack.pl:6): &orionDirs();
DB<1> c
safer::Indenture::facetsIn's directories: DRMetrics base external_cgi_bin external_images external_ont external_rec knowledge ontology orion_reqs stat_out ucfDir
base::Vars::runSwitches' directories: DRMetrics base external_cgi_bin external_images external_ont external_rec knowledge ontology orion_reqs stat_out ucfDir
main::runSwitches's directories: DRMetrics base external_cgi_bin external_images external_ont external_rec knowledge ontology orion_reqs stat_out ucfDir