From perlsyn:
Simple Statements The only kind of simple statement is an expression evaluated for its s +ide-effects. Every simple statement must be terminated with a semicol +on, unless it is the final statement in a block, in which case the se +micolon is optional. But put the semicolon in anyway if the block tak +es up more than one line, because you may eventually add another line +. Note that there are operators like eval {}, sub {}, and do {} that +look like compound statements, but aren't--they're just TERMs in an e +xpression--and thus need an explicit termination when used as the las +t item in a statement.
So, eval requires the terminating semicolon because it's a simple statement. You're using it for its side effects.
sub, when used in an expression, requires the semicolon as well (eg. my $coderef = sub {...};).
In reply to Re: why does Perl eval have a strange terminator?
by stevieb
in thread why does Perl eval have a strange terminator?
by misterperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |