in reply to why does Perl eval have a strange terminator?

That's how the parser is organized.

you must distinguish between

(Contrived) Examples:

map and eval fall into the function category.

NB: If you wanted to use a compound statement inside an expression, you would need to put it inside do {BLOCK}

HTH! :)

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

updates

  • added links to simple-statements, terms and expressions
  • PS: It's a bit confusing that Larry's definition of "Term" (leaf of the syntax-tree) is different to the one in mathematics.