autopackage - Automatically set your package based on how your module was loaded.


version 0.01


    use autopackage;


Ever have seriously deep package structure? And then typos between the file/pathname and the package name in your module? This happens to me all the time. And, worse, I sometimes need to re-seat a module - moving it from one namespace to another. Guess what happens then: I forget to change the package line. And then it takes me 5 minutes to figure out why it's not working (it used to take longer, but it happens so often now I generally figure it out sooner).

Lo and behold, a pragma. Simply use autopackage; at the top of your module, and you get your package declared for you at runtime. Don't specify the package anymore, and you can't end up with a misspelling.

This really works well for plugins where the name of the module is figured out dynamically anyway, other modules are harder to rename. But it still can be useful there as it's one less thing to change.


Darin McBride, <dmcbride at>


This also probably will break CPAN's indexer. So it may not be so useful for packages you want CPAN to index.

Please report any bugs or feature requests to bug-autopackage at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc autopackage

You can also look for information at:


    Copyright (c) 2012, Darin McBride. All Rights Reserved.
    This module is free software. It may be used, redistributed
    and/or modified under the same terms as Perl itself.


Darin McBride <>


This software is copyright (c) 2012 by Darin McBride.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.