package Boolean; my $true = bless(\(my $data = -1)); # Like BASIC my $false = bless(\(my $data = 0)); use overload '!' => sub { ${$_[0]} ? $false : $true }, 'bool' => sub { ${$_[0]} }; sub boolean($) { $_[0] ? $true : $false } sub true() { $true } sub false() { $false } 1;