in reply to Re^2: Usage of global variables
in thread Usage of global variables

You aren't getting warnings, but you aren't getting what you think you are here. It would help to see more code, and please use code tags. The first problem is that you weren't really exporting.
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;
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;
You have one more problem. By exporting the same name in two modules, you will be clobbering your first one.
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";
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.