Re^2: hangman game
by toolic (Bishop) on May 18, 2015 at 14:51 UTC
|
It is optional (but recommended). From Simple Statements:
Every simple statement must be terminated with a semicolon, unless it is the final statement in a block, in which case the semicolon is optional. But put the semicolon in anyway if the block takes up more than one line, because you may eventually add another line.
| [reply] |
|
|
I sit corrected. I'm relatively new to Perl myself, but like to keep from using some of the shortcuts for readability. Most of my previous experience is with C, C++, COBOL, and a few others...
| [reply] |
|
|
| [reply] |
|
|
Hello QM,
I assume you’re referring to the comma operator in scalar context, which “evaluates its left argument, throws that value away, then evaluates its right argument and returns that value.” (perlop#Comma-Operator).
A quick Google search found this 2010 discussion: http://stackoverflow.com/questions/2200759/when-is-perls-scalar-comma-operator-useful, in which Jonathan Feinberg suggests that the scalar context comma operator is provided for two reasons:
- As a hangover from C, because Perl was originally derived from C.
- Because it’s useful in cases where you want to execute two or more statements in a syntactic context that allows only a single statement.
Here’s a contrived example:
19:49 >perl -wE "for (my ($i, $j) = (1, 5); $i <= 5; ++$i, --$j) { say
+ abs($i - $j); }"
4
2
0
2
4
19:49 >
Of course, it is quite possible to re-structure that loop without resorting to use of the comma operator in scalar context. But in Perl’s spirit of TMTOWTDI, the ++$i, --$j syntax is provided for convenience. That’s my take on it, anyway.
Hope that helps,
| [reply] [d/l] [select] |
|
|
|
|
I'm trying to remember the other language where the final semicolon is wrong.
Pascal, at least "earlier versions of" ( Wikipedia supports my recollection).
To me, it seemed totally logical at that time, because we were shown the syntax diagrams.
| [reply] |
|
|
|
|
Perhaps someone can point up an example where it's helpful?
You will need it to create lists, for one, as in: ( 1, 5, 17 )
Otherwise it allows you to avoid blocks in unusual places like: do_whatever and log_this, dump_that;
Cheers, Sören
Créateur des bugs mobiles - let loose once, run everywhere.
(hooked on the Perl Programming language)
| [reply] [d/l] [select] |
|
|
|
|
| [reply] |
|
|