$fred; #also why do I have to put another $fred here? It doesn #'t seem to be part of "if" nor of "else"
To expand on the point that haukex made here, you don't have to put anything there. It doesn't matter what statements you put after the unconditional
return $sum;
subroutine return statement (as long as they're syntactically correct): they will never be executed.
If you have Perl version 5.12 or greater, you can demonstrate this for yourself using the ...; (yada) (update: or more correctly "ellipsis"; see Update below) statement (see perlop (update: but see also Update note below)). This statement can be compiled anywhere, but will throw an exception if it is ever executed.
Put a ...;c:\@Work\Perl\monks>perl -wMstrict -le "print qq{perl version: $]}; ;; my ($fred, $barney) = (7, 6); ;; sub combo { my $sum = $fred * $barney; return $sum; if ($fred > $barney) { ...; } else { ...; } } ;; print combo(); " perl version: 5.012003 42
Update: It seems that Perl documentation was re-organized at some point to move discussion of ...; to The Ellipsis Statement in perlsyn (the true name of yada is "ellipsis") from perlop (as yada). I don't know when this change was made.
Give a man a fish: <%-{-{-{-<
In reply to Re: Why am I getting "syntax error at Funcy.pl line 18, near "$barney return" ?
by AnomalousMonk
in thread Why am I getting "syntax error at Funcy.pl line 18, near "$barney return" ?
by prospect
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |