use strict; use lib ('.'); use MYPACKAGE qw / sub1 $var1 /; use vars qw / $var1 /; sub1(); $var1="PRINT THIS"; sub1(); package MYPACKAGE; use Exporter; use vars qw / @ISA @EXPORT @EXPORT_OK /; @ISA = qw/ Exporter /; @EXPORT = (); @EXPORT_OK = (qw/sub1 $var1/);; use strict; use vars '$var1'; $var1 = "DEFUALT I WANT TO CHANGE"; sub sub1 { print "var1 = $var1\n" } 1; __DATA__ var1 = DEFUALT I WANT TO CHANGE var1 = PRINT THIS #### use strict; use lib ('.'); use MYPACKAGE qw / set_var get_var/; print get_var(), "\n"; set_var('Some new val'); print get_var(), "\n"; package MYPACKAGE; use Exporter; use vars qw / @ISA @EXPORT @EXPORT_OK /; @ISA = qw/ Exporter /; @EXPORT = (); @EXPORT_OK = (qw/set_var get_var/);; use strict; my $var1 = "DEFUALT I WANT TO CHANGE"; sub set_var { $var1 = shift } sub get_var { return $var1 } 1;