In Control flow§
See primary documentation in context for given
The given
statement is Raku's topicalizing keyword in a similar way that switch
topicalizes in languages such as C. In other words, given
sets $_
inside the following block. The keywords for individual cases are when
and default
. The usual idiom looks like this:
my $var = (Any, 21, any <answer lie>).pick; given $var { when 21 { say $_ * 2 } when 'lie' { .say } default { say 'default' } }
The given
statement is often used alone:
given 42 { .say; .Numeric; }
This is a lot more understandable than:
{ .say; .Numeric; }(42)