in reply to Packages and modules

I'd refrain from using a variable in main. If you insist on using a variable, at least use one in the package of your module. For example, that's what Data::Dumper does: you can control its behaviour by setting $Data::Dumper::Indent, $Data::Dumper::Terse,...

File::Find, as another example, makes the long path of the file available via $File::Find::name, and not via $main::name.