sub done { my $self = shift; return not $self->foo and not $self->bar; # gotcha! } #### (return not $self->foo) and not $self->bar; #### sub done { my $self = shift; return !$self->foo && !$self->bar; } #### my $bool = 1 and 0; # $bool == 1 and $_ == 0; may not be what you expect!