package Foo; use strict; use warnings; use Exporter; our @ISA = qw(Exporter); our $foo = "FOO"; our @EXPORT = qw( $foo ); 1; #### package Client1; use strict; use warnings; use Foo; 1; #### package Client2; use strict; use warnings; use Foo; 1; #### #!/usr/bin/perl use strict; use warnings; use Client1; use Client2; print "Client1::foo=", $Client1::foo, "\n"; print "Client2::foo=", $Client2::foo, "\n"; #both variables $Client1::foo and $Client2::foo are just other names for $Foo::foo, #so the second assignment wins $Client1::foo = 'CLIENT1'; $Client2::foo = 'CLIENT2'; print "Client1::foo=", $Client1::foo, "\n"; print "Client2::foo=", $Client2::foo, "\n"; #### Client1::foo=FOO Client2::foo=FOO Client1::foo=CLIENT2 Client2::foo=CLIENT2