This is the approach I felt like using earlier, however I thought my current understanding of how the code is handled within scripts and packages would make this pointless. Singletons always kind of feel hackish to me as well, however if you believe this would be the best approach, I will probably go with it.
This is how I believe the language works:
Default Perl scripts are always instanced
Module assigned using the "use" statement are only run once compile time, reference is then used to call the subroutines
Module/Files assigned using the "require" statement are always loaded using a fresh instance