Server : Apache/2.4.43 (Win64) OpenSSL/1.1.1g PHP/7.4.6 System : Windows NT USER-PC 6.1 build 7601 (Windows 7 Professional Edition Service Pack 1) AMD64 User : User ( 0) PHP Version : 7.4.6 Disable Function : NONE Directory : C:/xampp/perl/vendor/lib/DBM/Deep/ |
package DBM::Deep::Null; use 5.008_004; use strict; use warnings FATAL => 'all'; =head1 NAME DBM::Deep::Null - NULL object =head1 PURPOSE This is an internal-use-only object for L<DBM::Deep>. It acts as a NULL object in the same vein as MARCEL's L<Class::Null>. I couldn't use L<Class::Null> because DBM::Deep needed an object that always evaluated as undef, not an implementation of the Null Class pattern. =head1 OVERVIEW It is used to represent null sectors in DBM::Deep. =cut 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__