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/