NAME Acme::Tao - enforce 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 will die with a nice message. Note that the package in which Tao is constant is irrelavent. 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. 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, 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 James G. Smith. This module is free software. It may be used, redistributed, and/or modified under the same terms as Perl.