Acme-Tao
view release on metacpan or search on metacpan
NAME
Acme::Tao - strongly suggests proper respect for the Tao
SYNOPSIS
use Acme::Tao;
or
use Acme::Tao qw(something_that_must_not_be_constant);
DESCRIPTION
Everyone knows that the Tao is not constant. But some people just might
not get it. To make sure no one tries to use constant Tao in a program
with your module, put a "use Acme::Tao" at the top of your code. If Tao
has been made constant by time your module is used, Acme::Tao may die
with a nice message. Note that the package in which Tao is constant is
irrelavent.
On a walk between shrines in Nikko, Japan, I had an epiphany: if the Tao
is not constant, than neither should Acme::Tao be constant.
The Tao doesn't take sides;
it gives birth to both wins and losses.
Acme::Tao doesn't take sides either, at least not consistently. It will
sometimes die and sometimes not (50% chance of it doing so), in
accordance with its understanding of the nature of the Tao.
As Lao-tzu teaches, "The name that can be named is not the constant
name," and Acme::Tao can *also* be used to check for any other symbols
you might not want to have as constants. When used in this fashion, it
will always try to work.
For example:
use Acme::Tao qw(foo);
This will die if "foo" is defined as a constant in the current package.
use Acme::Tao qw(::foo);
This will die if "foo" is defined as a constant in the "main::" package.
This is the same as "main::foo".
If Acme::Tao is checking for particular symbols, it will not check for a
constant Tao.
MESSAGES
The messages are stored in @__PACKAGE__::messages. Feel free to add to
them. You can even subclass Acme::Tao:
package My::Tao;
use Acme::Tao ();
use vars(@messages @ISA);
@ISA = qw(Acme::Tao);
@messages = ( ... );
1;
__END__
The messages will come from the appropriate package and are not
cumulative.
AUTHOR
James G. Smith, <jsmith@cpan.org>
( run in 1.162 second using v1.01-cache-2.11-cpan-9581c071862 )