summaryrefslogtreecommitdiffstats
path: root/perl/perl-namespace-clean/README
blob: ffae2670abbe960428bc6275a28cca65064fd0fd (plain)
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
classes that are included via multiple inheritance by loading them as
base classes.

The namespace::clean pragma will remove all previously declared or
imported symbols at the end of the current package's compile cycle.
Functions called in the package itself will still be bound by their
name, but they won't show up as methods on your class or instances.

By unimporting via no you can tell namespace::clean to start collecting
functions for the next use namespace::clean; specification.