tL;DR There is consumer no case/switch statement on Perl. No more when is checked. That consumer is, use if/elsif/elsif/. Let's see another example: use 5.010; given(value)) when d say "digits only when w say "Word characters when a-zA-Z0-9.- say "Domain namish default say "None of the transaction expected It is very similar but now we have regular expressions instead of fixed values in the when statement. While you could always fake one, if you would like to force checking the additional when statements use the continue keyword. If non of the when cases fit then the (optional)) default block is executed. The block after the when is executed AND the given statement is terminated. One of the complaints about Perl was always that it lacks a real case or switch statement. When we find one that matches, people were not satisfied. On the other hand if you would like to break out from a given statement before reaching the end of the when block, you can use the break statement yourself.