when
is analogous to the case
keyword in other languages. Used with a
foreach
loop or the experimental given
block, when
can be used in
Perl to implement switch
/case
like statements. Available as a
statement after Perl 5.10 and as a statement modifier after 5.14.
Here are three examples:
- use v5.10;
- foreach (@fruits) {
- when (/apples?/) {
- say "I like apples."
- }
- when (/oranges?/) {
- say "I don't like oranges."
- }
- default {
- say "I don't like anything"
- }
- }
- # require 5.14 for when as statement modifier
- use v5.14;
- foreach (@fruits) {
- say "I like apples." when /apples?/;
- say "I don't like oranges." when /oranges?;
- default { say "I don't like anything" }
- }
- use v5.10;
- given ($fruit) {
- when (/apples?/) {
- say "I like apples."
- }
- when (/oranges?/) {
- say "I don't like oranges."
- }
- default {
- say "I don't like anything"
- }
- }
See Switch statements in perlsyn for detailed information.