STMT if EXPR
STMT unless EXPR
STMT while EXPR
STMT until EXPR
STMT foreach EXPR
####
if (EXPR) BLOCK
if (EXPR) BLOCK else BLOCK
if (EXPR) BLOCK elsif (EXPR) BLOCK ... else BLOCK
LABEL while (EXPR) BLOCK
LABEL while (EXPR) BLOCK continue BLOCK
LABEL for (EXPR; EXPR; EXPR) BLOCK
LABEL foreach VAR (LIST) BLOCK
LABEL foreach VAR (LIST) BLOCK continue BLOCK
LABEL BLOCK continue BLOCK
####
D:\Development>perl -Mstrict -wle "my $foo=1 if 0; print defined($foo) ? $foo : 'undef'"
undef
D:\Development>perl -Mstrict -wle "if ( 0 ) { my $foo=1 } print defined($foo) ? $foo : 'undef'"
Global symbol "$foo" requires explicit package name at -e line 1.
Global symbol "$foo" requires explicit package name at -e line 1.
Execution of -e aborted due to compilation errors.