| DBM-Deep documentation | Contained in the DBM-Deep distribution. |
DBM::Deep::Null
This is an internal-use-only object for DBM::Deep. It acts as a NULL object in the same vein as MARCEL's Class::Null. I couldn't use Class::Null because DBM::Deep needed an object that always evaluated as undef, not an implementation of the Null Class pattern.
It is used to represent null sectors in DBM::Deep.
| DBM-Deep documentation | Contained in the DBM-Deep distribution. |
package DBM::Deep::Null; use 5.008_004; use strict; use warnings FATAL => 'all';
use overload 'bool' => sub { undef }, '""' => sub { undef }, '0+' => sub { 0 }, ('cmp' => '<=>' => sub { return 0 if !defined $_[1] || !length $_[1]; return $_[2] ? 1 : -1; } )[0,2,1,2], # same sub for both ops '%{}' => sub { require Carp; Carp::croak("Can't use a stale reference as a HASH"); }, '@{}' => sub { require Carp; Carp::croak("Can't use a stale reference as an ARRAY"); }, fallback => 1, nomethod => 'AUTOLOAD'; sub AUTOLOAD { return; } 1; __END__