http://qs321.pair.com?node_id=871446


in reply to Legitimate use for combined 'local' and 'our'

It may be that local doesn't do what you think it does. It would make a lot more sense to write something like this:
package blarg; use strict; use warnings; sub hrmph { our $global = "blarg"; print "$global\n"; local $global; $global = "hrm, just in here!"; print "$global\n"; # when this scope is done, global goes back to "blarg" automatical +ly }

Note that use vars is pretty much the same thing as our except that the package variable isn't bound locally to a sub as a pseudo-lexical. But if it was a case of use vars local would work the same way. It doesn't make the variable lexical, it makes the values you use in it local to the scope.