This and other RFCs are available on the web at
  http://dev.perl.org/rfc/

=head1 TITLE

Add 'tristate' pragma to allow undef to take on NULL semantics

=head1 VERSION

   Maintainer: Nathan Wiger <[EMAIL PROTECTED]>
   Date: 23 Sep 2000
   Mailing List: [EMAIL PROTECTED]
   Number: 275
   Version: 1
   Status: Developing

=head1 ABSTRACT

RFC 263 proposed the introduction of a C<null> keyword for introducting
tristate logic into Perl 6. However, that was abandoned in favor of the
approach specified here, a C<tristate> pragma.

=head1 DESCRIPTION

The C<tristate> pragma allows for undef to take on the RDBMS concept of
C<NULL>, in particular:

   1. Any math or string operation between a NULL and any other
      value results in NULL

   2. No NULL value is equal to any other NULL

   3. A NULL value is neither defined nor undefined

The C<tristate> pragma is lexically scoped, so that it obeys code
blocks:

   $a = undef;
   $b = 1;
   $c = $a + $b;    # 1
   {
      use tristate;
      $d = $a + $b; # undef
   }
   $e = $c + $d;    # 1

For more details on theoretical issues, please see the references or RFC
263.

=head1 IMPLEMENTATION

No idea, too burned out.

=head1 MIGRATION

None, unless some dumbass has a custom C<tristate> module that they
wrote to navigate the tristate area of New York, New Jersey, and
Connecticut. But that should be C<Tristate> anyways.

=head1 REFERENCES

RFC 263: Add null() keyword and fundamental data type

http://www.sitelite.nl/mysql/manual_Problems.html#IDX666

http://www.unb.ca/web/transpo/mynet/mtx19.htm#r2

Reply via email to