=head1 NAME Perl6::Overview::Control - Control Structure =head1 DESCRIPTION =head2 Loop Structures while EXPR { ... } until EXPR { ... } loop { ... }; loop ($i = 0; $i < 10; $i++) { ... } repeat { ... } while EXPR; repeat { ... } until EXPR; repeat while EXPR { ... } repeat until EXPR { ... } =head2 For Loop structures for @foo { ... } for @foo -> $x { ... } for @foo -> $x, $y, $z { ... } for @foo.kv -> $index, $value { ... } for %hash.kv -> $key, $value { ... } for =<> {...} # was while (<>) { ... } in p5 =head2 Switch/Case style control elements given $x { ... } # $x is now topic for block when EXPR { ... } # perform $_ ~~ EXPR execute block and break default { ... } # same as when true { ... } =head2 Closure traits BEGIN { ... } # Body executed at compile-time, as soon as possible CHECK { ... } # Body executed at compile-time, as last as possible INIT { ... } # Body executed at runtime, as soon as possible END { ... } # Body executed at runtime, as last as possible START { ... } # Body only executed once (per clone), inline sub foo { START { # Initialize environment, e.g. create some files, etc. } ...; } foo(); # Runs initialization block foo(); # Does not run initialization block again foo(); # ditto =cut