use var と our
よく混乱するのでメモ書き。
# our : lexical scope
{
package Foo;
our $foo = 'our!';
package Bar;
print $foo."\n"; # Foo::fooが参照される。
}
# use vars : package scope
{
package Foo;
use vars q($foo);
$foo = 'vars!';
package Bar;
print $foo."\n"; # Foo::fooは参照されない。
}
参考 http://qiita.com/monoknock/items/b9928acd46c878be6ce2