in reply to Re: == works where it shouldn't but eq doesn't where it should
in thread == works where it shouldn't but eq doesn't where it should

Which, by the way, is inefficient as it iterates through the whole @ops array even if the first element matches $who! A better approach is first in List::Util.
if (first { $_ eq $who } @ops) { print "matches"; }