> Hamish Whittal wrote:
> > Hi Everyone,
> > 
> > I am needing to use some variables throughout all the 
> modules that I 
> > have created. I was wondering, bar setting them at the top of each 
> > module, what the best means of doing this is. Perhaps setting an 
> > environment variable, but what other ideas. The ultimate 
> goal is to be 
> > able to change the value in the 'top-level' module and that should 
> > have an impact throughout all subsequent modules.
> 
> Create a module like this:
> 
>   Common.pm
>   ---------
>   package Common;
> 
>   use strict;
>   use base 'Exporter';
> 
>   our @EXPORT = qw/$foo @bar %baz/;
> 
>   1;
> 
> Now, in each of your modules, add "use Common;"
> 
> The variables $foo, $bar, $baz will now be shared globals 
> across all the modules that "use Common". Changes to the 
> value of one of these in any module will be visible across 
> all the modules, since they are all aliasing the same set of 
> variables.

Will this also work if I was to use Common; in a script?

IE 

#!/perl -w

use strict;
use Common; # IE example above
 print $foo;
        for(@bar) {
                if(exists $baz{$_}) { }
        }

Also in the example above where do I cactually put values in those variables?

   package Common;
 
   use strict;
   use base 'Exporter';

        $foo = "HI"; 
   our @EXPORT = qw/$foo @bar %baz/;
# or here : $foo = "HI";

   1;

> 
> (If you already have a common module used by all the other 
> modules, just add the "use base" and "our @EXPORT" lines to 
> that module.)
> 
> perldoc Exporter (be sure to read this to learn about other 
> options, and why the practice of using @EXPORT is generally 
> discouraged).
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to