NAME
autopackage - Automatically set your package based on how your module was loaded.
VERSION
version 0.001
DESCRIPTION
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.
SYNOPOSIS
use autopackage;
AUTHOR
Darin McBride, <dmcbride at cpan.org>
BUGS
If your @INC has two paths inside each other, stop it. But if you have to, this may confuse this module. It scans your @INC to figure out what to eliminate from the filename, and if two paths in @INC overlap, it may get this wrong.
For example, if you have @INC with /foo
and /foo/bar
, in that order, and your module is /foo/bar/MyModule.pm
, autopackage will think that the package name should be bar::MyModule
when it's really MyModule
. If your @INC is reversed, this bug shouldn't show up.
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 rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=autopackage. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc autopackage
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
COPYRIGHT
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.
AUTHOR
Darin McBride <dmcbride@cpan.org>
COPYRIGHT AND LICENSE
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.