On Wed, Jan 21, 2004 at 11:09:29AM -0500, Andrew Pimlott wrote:
> I like to use symbolic constants.  Wha can remember what all those
> 1, 0, undef, and ''s mean anyway?  So I start off all my programs
> with
> 
>     use constant FALSE => !TRUE;
>     use constant TRUE => !FALSE;

You may be joking, but I used to do things like this:

        use constant TRUE  => 1==1;
        use constant FALSE => !TRUE;
        use constant SUCCESS => TRUE;
        use constant FAILURE => !SUCCESS;
        use constant ERROR => undef;

and used it like...

        sub is_foo {
                ...
                return TRUE if $bleh eq 'foo';
        }

on the grounds that "return 1" is ambiguous, are you returning the number 1
or indicating truth? 

I admit its rather overdoing it a bit.  I got it from a notable bit of 
dubious advice in a book that's otherwise full of good advice, "Code 
Complete".  Their logic was that different programming languages have 
different ideas of what truth is (for some, 0 is true) and you might forget 
as you moved from one language to another.

You can still see vestiages of this in one of my earliest modules,
Tree, to the point where I toyed with having a Truth.pm.


-- 
Michael G Schwern        [EMAIL PROTECTED]  http://www.pobox.com/~schwern/

Reply via email to