david <[EMAIL PROTECTED]> wrote:
:
: Wc -Sx- Jones wrote:
:
: > explicit zero (0) or nothing ( or undefined.)
: >
: > That is NOT true (it's not false either per se...)
: >
:
: this is impossible in Perl. show me an example
: where something is neither true nor false.
Er, um, well ...
#!/usr/bin/perl
package foo;
use strict;
use warnings;
use Carp 'croak';
use overload bool => \&boolean;
sub new {
return bless {
value => undef,
bool => 1 }, 'foo';
}
sub value {
my $self = shift;
$self->{value} = shift if @_;
return $self->{value} unless defined $self->{value};
$self->{bool} = $self->{value} eq 'ambiguous' ? undef : $self->{value};
return $self->{value};
}
sub boolean {
my $self = shift;
return $self->{value} if $self->{bool};
croak "Sorry this value does not evaluate as either true or as false";
}
package main;
$|++;
use strict;
use warnings;
#use Data::Dumper 'Dumper';
my $foo = foo->new();
$foo->value(1);
print "true\n" if $foo;
$foo->value( undef );
print "false\n" unless $foo;
$foo->value( 'ambiguous' );
print "true\n" if $foo;
__END__
HTH,
Charles K. Clarkson
--
Mobile Homes Specialist
254 968-8328
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>