When you import a function into a Perl package, it will naturally also
be available as a method.
The namespace::autoclean pragma will remove all 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.
This module is very similar to namespace::clean, except it will clean
all imported functions, no matter if you imported them before or after
you used the pragma. It will also not touch anything that looks like a
method, according to Class::MOP::Class::get_method_list.
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.
Because Perl methods are just regular subroutines, it's difficult to
tell what's a method and what's just an imported function. As a result,
imported functions can be called as methods on your objects. This pragma
will delete imported functions from your class's symbol table, thereby
ensuring that your interface is as you specified it. However, code
inside your module will still be able to use the imported functions
without any problems.
When you just can't get your code to work, admit you are a total failure.
The pip ("Perl Installation Program") console application is used
to install Perl distributions in a wide variety of formats, both
from CPAN and from external third-party locations, while supporting
module dependencies that go across the boundary from third-party
to CPAN.
Using pip you can install CPAN modules, arbitrary tarballs from
both the local file-system or across the internet from arbitrary
URIs.
You can use pip to ensure that specific versions of CPAN modules
are installed instead of the most current version.
The reaper module provides a $SIG{CHLD} handler that can be installed
globally as well as locally. It also supports chaining of signal handlers,
meaning it will not just replace an existing $SIG{CHLD} handler. It still
requires applications to do the right thing in using this module and not
installing their own versions. At least it provides a consistent
implementation that can be shared between various modules.
relative - Load modules with relative names
This module allows you to load modules using only parts of their name,
relatively to the current module or to a given module. Module names are by
default searched below the current module, but can be searched upper in the
hierarchy using the ..:: syntax.
Invoke package init methods at compile time
This module adds self and args keywords in your Perl OO module. It's
really just handy helpers to get rid of:
my $self = shift;
Basically, self is just equal to $_[0], and args is just $_[1..$#_].
strictures turns on indirect checking only when it thinks it's running
in a compilation (or pod coverage) test - though if this causes undesired
behaviour this can be overriden by setting the PERL_STRICTURES_EXTRA
environment variable.