In a message dated 28 Aug 2002, Aaron Sherman writes:
> Ok, just to be certain:
>
> $_ = "0";
> my $zilch = /0/ || 1;
>
> Is $zilch C<"0"> or 8?
8? How do you get 8? You'd get a result object which stringified was "0"
and booleanfied was true. So here, you'd get a result object vaguely
isomorphic to "0 but true".
> If C<"0">, does it continue to be "true"? What about:
>
> $_ = "0";
> my $zilch = /0/ || 1;
> die "Failed to match zero" unless $zilch;
>
> Is that a bug?
Yes, it's a bug, as I don't see any way to actually die there. I don't
understand the presence of the C<|| 1> there. I think you'd just write
C<my $zilch = /0/;>. If you really truly wanted it to be one if it
failed, but you still wanted the die to work, you'd write:
$_ = "0";
my $zilch = /0/ || 1 but false;
die "Failed to match zero" unless $zilch;
Or, more comprehensibly, just
$_ = "0";
my $zilch = /0/
or die "Failed to match zero";
Trey