NAME
namespace::clean::xs - Keep imports and functions out of your namespace, in XS
SYNOPSIS
use namespace::clean::xs; # be lean and mean
DESCRIPTION
This module is a much faster (~30x) version of namespace::clean module. 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 the complete description of this module's logic.
COMPABILITY
All methods from namespace::clean are implemented in namespace::clean::xs, but individual functions have the following differences:
- "get_class_store"
-
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.
- "get_functions"
-
In the returned hash function stubs and constants are not expanded. While you can still call the latter and can't call the former, you may get different error messages.
- "unimport"
-
Will croak on unrecognized options.
- "import"
-
Will croak on unrecognized options.
This module tries to minimize memory impact after it's usage, so it won't expand constant/stub functions to full globs (unlike what namespace::clean does). It also removes symbols without data from the package completely.
SEE ALSO
COPYRIGHT AND LICENSE
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.