The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Acme::use::strict::with::pride - enforce bondage and discipline on very naughty modules.

SYNOPSIS

  use Acme::use::strict::with::pride;
  # now all your naughty modules get to use strict; and use warnings;

ABSTRACT

using Acme::use::strict::with::pride causes all modules to run with use strict; and use warnings;

Whether they like it or not :-)

DESCRIPTION

Acme::use::strict::with::pride installs a code reference into @INC that intercepts all future use and require requests. (code references in @INC were in 5.6.x, but were not documented until 5.8.0, which extends the feature to allow objects in @INC).

The subroutine in @INC then finds the module using the normal @INC path, opens the file, and attaches a source filter that adds "use strict; use warnings;" to the start of every file. This is naughty - it's not a documented feature, it may be changed or removed with no notice, and the current implementation is slightly buggy in subtle cases.

EXPORT

Nothing. There's no unimport method, so using strict with pride is a one way trip. This could be construed as a bug or a feature, depending on your point of view.

SEE ALSO

strict warnings Acme::USIG

BUGS

There's no unimport. There's no way to specify an import list to use strict; or use warnings;. There's no way to exclude specific modules (eg Exporter) from the clutches Acme::use::strict:with::pride. The error and warning handling is global, rather than being chained, and it won't play nicely with error objects. The source filter in coderef @INC is undocumented, so I shouldn't be using it.

AUTHOR

Nicholas Clark, <nick@talking.bollo.cx>

COPYRIGHT AND LICENSE

Copyright 2002,2003 by Nicholas Clark

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.