in reply to Re^2: Usage of global variables
in thread Usage of global variables
package mod1; use strict; use vars qw(%line); use Exporter(); # The next two lines are vital for exporting. our @ISA = qw(Exporter); our @EXPORT_OK = qw(%line); BEGIN { %line = (this => "line"); } 1;
You have one more problem. By exporting the same name in two modules, you will be clobbering your first one.package mod2; use strict; use vars qw(%line $time); use Exporter(); # Same with this one. our @ISA = qw(Exporter); our @EXPORT_OK = qw(%line $time); BEGIN { %line = (that => "line2"); $time = time(); } 1;
If you really want both packages to have their own global named %line then don't export them. Use them with package names, like this: %mod1::line.use strict; use vars qw(%line $time); use mod1 qw(%line); use mod2 qw(%line $time); # This will print: # that,line2 print join(",",%line),"\n";
|
|---|