X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README;h=3d06797e8dea3cd1a3e648401fabd6a3b9127f42;hb=9cf9958a0c1229be3868d79f493a1805a3bab542;hp=0548c313ceeaabcb69671b6ce8b9a4f95f4fcfaf;hpb=1a1be5dc205173c95164e59932ef58652a223975;p=p5sagit%2Fnamespace-clean.git diff --git a/README b/README index 0548c31..3d06797 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ NAME namespace::clean - Keep imports and functions out of your namespace VERSION - 0.07 + 0.10 SYNOPSIS package Foo; @@ -35,6 +35,7 @@ SYNOPSIS 1; DESCRIPTION + Keeping packages clean When you define a function, or import one, into a Perl package, it will naturally also be available as a method. This does not per se cause problems, but it can complicate subclassing and, for example, plugin @@ -59,6 +60,26 @@ DESCRIPTION If you just want to "-except" a single sub, you can pass it directly. For more than one value you have to use an array reference. + Explicitely removing functions when your scope is compiled + It is also possible to explicitely tell "namespace::clean" what packages + to remove when the surrounding scope has finished compiling. Here is an + example: + + package Foo; + use strict; + + # blessed NOT available + + sub my_class { + use Scalar::Util qw( blessed ); + use namespace::clean qw( blessed ); + + # blessed available + return blessed shift; + } + + # blessed NOT available + Moose When using "namespace::clean" together with Moose you want to keep the installed "meta" method. So your classes should look like: @@ -76,7 +97,7 @@ METHODS import Makes a snapshot of the current defined functions and installs a - Scope::Guard in the current scope to invoke the cleanups. + B::Hooks::EndOfScope hook in the current scope to invoke the cleanups. unimport This method will be called when you do a @@ -111,7 +132,7 @@ IMPLEMENTATION DETAILS use "undef" instead. SEE ALSO - Scope::Guard + B::Hooks::EndOfScope AUTHOR AND COPYRIGHT Robert 'phaylon' Sedlacek "", with many thanks to Matt S