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. Of course, if all Acme::Tao did was check for attempts to make the Tao constant, it would be a fairly useless module. So it will also check for any other symbols you might want to not 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 "@Acme::Tao::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 = ( ... ); push @Acme::Tao::messages, @messages; 1; __END__ AUTHOR James G. Smith, I owe Kip Hampton a big thank you for mentioning the idea in passing. 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.