There are two types of variables you can modify in your
callers namespace:
All package variables (well, technically, package
variables are the only variables with a "namespace").
All lexical variables that share the same scope as
your subroutine.
That is, lexical variables that don't share a scope are
unreachable. And that's a good thing, that's why you have
lexical variables in the first place.