[EMAIL PROTECTED] (John W. Krahn) writes:
> "Michael R. Wolf" wrote:
[buggy code deleted ...]
> $ perl -le'
> @fred = qw(1 3 5 7 9);
> sub total {
> my $sum;
> $sum += $_ foreach (@_);
> }
# undef from final foreach always returned!!!!
> print total( @fred );
> '
>
My bad! Sorry. I'm working on a laptop (with about 5M, yes
M, extra disk space) away from my Perl environment. No room
to set up the envorienment that I should have to prevent
posting buggy code.
The last "executed" expression was the failing loop
iteration, therefore, that's what was returned. (I even
thought about it for a couple of minutes before I posted it!
And I got it wrong. Nothing like running Perl through perl
(instead of my grey matter) to get the right answer. I got
bit by my own hubris. I tried to make it as small as
possible, but I made it _too_ small. I got distracted by
checking the docs to confirm that the return value of an
incrementing assignment was the newly incremented value. I
forgot to consider the final loop iteration.)
Add either of these lines before the closing brace to fix my
buggy code.
$sum; # Perl guru-ish.
return $sum # The way I really do it. Old C habits die hard.
--
Michael R. Wolf
All mammals learn by playing!
[EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]