In “Learning Perl”, Pg. 116, is found this sentence: Whatever calculation is
last performed in a subroutine is automatically also the return value.
I have a subroutine that (almost) ends with this loop:
foreach my $line (@lines) {
$sum += evaluate($line);
}
What I want to return is the final value of $sum as calculated on the last pass
of that loop, so I simply closed the subroutine block right there with },
making it look like this:
foreach my $line (@lines) {
$sum += evaluate($line);
}
}
That was pointless, so I “worked around” the issue by adding $sum at the end:
foreach my $line (@lines) {
$sum += evaluate($line);
}
$sum;
}
I think I can remember this in the future, but I’d like to understand what’s
actually happening. And I suspect I’m offending some veterans by not making
Perl-ish use of #_. Sorry about that.