> 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]