in reply to Is 'for' the wrong choice here?

If you simply want to stop the loop once it has matched
use last
for $admin_user (@admin_users) { if ($author =~ /($admin_user)/i) { print "$blah"; last; } else { print "$uber_blah "; } }