sub notify_users { my $message = shift; # Get the list of addresses to notify my @addr = @{$dbh -> selectall_arrayref(q[ SELECT addr FROM email, (SELECT userid FROM usernames WHERE 0 <> position(lower(username) IN ?) AND userid <> ? EXCEPT SELECT userid FROM ignore WHERE ignore_userid = ?) ids WHERE email.userid = ids.userid], undef, lc $message -> {'message'}, $message -> {'userid'}, $message -> {'userid'})}; # flatten the array $_ = $_ -> [0] for @addr; @addr = grep length(), @addr; return unless @addr; .... }