my $el; while ($el = pop @els) { # Body of loop } #### sub while (BOOL $condition, &closure) {...} sub if (BOOL $condition, &closure) {...} #### if condition(), &call_me; #### &debug := { if BEGIN{$debug}, &^action }; # and later... debug { print "here" }