the "use vars" and "use subs" declarations are not BLOCK-scoped. They are thus effective for the entire file in which they appear. #### use strict; $\="\n"; use vars qw($x); $x="main"; { print $x; package one; use vars qw($x); $x="one"; print $x; } print $x; __END__ main one main