Isn't that just:
for @array_of_random_values_and_types, 'ok' -> $t { when 'ok' { yada(); last } last unless some_sort_of_test($t); }
IOW, the topic is only 'ok' when all of the items in the array have been processed
Unless, of course, the string 'ok' is also one of the random_values_and_types. Hence my alternative solution.
Damian