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, <
[email protected]>
I owe Kip Hampton a big thank you for mentioning the idea in passing and
assisting with parts of the documentation.
The messages are lifted from the "fortune" data files.
COPYRIGHT
Copyright (C) 2002, 2004 James G. Smith.
This module is free software. It may be used, redistributed, and/or
modified under the same terms as Perl.