in reply to Comma's and blocks

that's not so strange in computer languages, in C:
if (COND) BLOCK
as you can see, there are no commas and if BLOCK is surrounded by {} you can avoid the semicolon, too.
Same applies to for, while.

The only difference between those languages and perl1 is that perl allow more freedom: in some cases you can avoid (), there are more tokens which means the same (for, foreach), and the same token may have more available syntaxes (if (COND) { BLOCK },  EXPR if COND;) and so on. Probably Wirth would not like it, but i don't like pascal, so... :)

Oha

1 - The OP didn't compared perl to other langs, but i hope this diversion can be partially OT.