# different $_ on left and right, but I find this perfectly clear $sum += $_ for /(\d)/g; # or my @saints = grep $_->is_saint, @users; # or my @users = map { my $name = $_; is_god($name) ? find_with_sacrifice($name, $spare_user) : is_saint($name) ? find_with_relic($name, $relic) : $spare_user ? find_user($name) : do { # save for later $spare_user = find_user($name); () } } @names;