Simple statements
The only kind of simple statement is an expression evaluated for its side effects. Every simple state- ment must be terminated with a semicolon, unless it is the final statement in a block, in which case the semicolon is optional. (Semicolon is still encouraged there if the block takes up more than one line).
Any simple statement may optionally be followed by a single modifier, just before the terminating semicolon. The possible modifiers are:
if EXPR unless EXPR while EXPR until EXPR
The if and unless modifiers have the expected semantics. The while and until modifiers also have the expected semantics (conditional evaluated first), except when applied to a do-BLOCK or a do- SUBROUTINE command, in which case the block executes once before the conditional is evaluated. This is so that you can write loops like:
do {
$_ = <STDIN>;
...
} until $_ eq ". \ n";
(See the do operator below. Note also that the loop control commands described later will NOT work in this construct, since modifiers don’t take loop labels. Sorry.)