I noticed a behavior that I can not explain. I would appreciate anyone who could provide an explanation and expand on the subject.
I have noticed that when a sub routine returns a "", the value that get stored is not always "". When you throw in a || onto the end of the calling statement, the return value is 1.
#!/usr/bin/perl -w
use strict;
my $o = mysub() || print STDERR "didn't work\n";
print $o;
print "\n";
$o = mysub();
print $o;
print "\n";
sub mysub
{
return "";
}
The first print will output a "1" while the second one will output the expect value of "". Can someone please explain why this occurs and any other symptoms like it? (E.g. If a different value gets returned depending on what the function after || is).
Thanks.