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, <jsmith@cpan.org>

    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.

