namespace::clean::xs - Keep imports and functions out of your namespace, in XS
use namespace::clean::xs; # be lean and mean
This module is a much faster (~30x) alternative for namespace::clean. namespace::clean spends approximately 1ms per module, so it can significantly impact startup time for a large codebase. This module tries to be a drop-in replacement for it.
See namespace::clean for a workflow description/usage examples.
This module tries to minimize memory impact after it's usage, so it won't expand constant/stub functions to full globs. It also removes symbols without data from the package completely.
Since version 0.27 namespace::clean allows you to clean a single package twice. This behaviour is not supported yet.
While all methods from namespace::clean are implemented, individual functions have the following differences:
Will croak on unrecognized options.
Structure of the returned hash is the same, but it has nothing to do with the internal storage. Modifications of it are in vain.
While namespace::clean saves this info forever, this module deletes it after namespace cleanup is done.
In the returned hash function stubs and constants are not expanded. You can't count on calling values in it as functions unless you access corresponding glob first (and loose any memory savings in the process).
namespace::clean
namespace::clean::xs::all
Copyright (C) 2016-2017 by Sergey Aleynikov
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.
To install namespace::clean::xs, copy and paste the appropriate command in to your terminal.
cpanm
cpanm namespace::clean::xs
CPAN shell
perl -MCPAN -e shell install namespace::clean::xs
For more information on module installation, please visit the detailed CPAN module installation guide.