Given / when ('switch' statements)
Any construct that sets the $_ topic (such as loops) can use 'when'.
# loop through @elems, execute first matching 'when' on each for @elems { print "element $_ "; when 'spot' { say 'is "spot"'; } when /spot/ { say 'contains "spot"'; } when Dog { say 'has type Dog'; } when any(@cats) { say 'element of @cats'; } when none(@abc) { say 'not in @abc'; } default { say 'unknown'; } }