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


in reply to Specifying main:: scope

To say that $a and $b are in main:: you can use something like:

package main; our($a,$b); package RealPackage; # ...

However, I think you are doing something that is not a good idea. Since you seem to have perl >=5.6, I would reccommend using a function with a prototype of ($$) as your sort routine:

sub directories_first ($$) { my ($a,$b) = @_; # ... }

Otherwise, if your function is to work should you want to use it in a package besides main you're going to need to do something to use the correct package's variable, such as dynamically generating the function on export or using symbolic references.