use experimental qw(keyword_any); use List::Util; use Benchmark qw(cmpthese); my @foo = (1..100000); cmpthese(10000, { grep => sub { grep {defined $_} @foo }, l_u => sub { List::Util::any {defined $_} @foo }, any => sub { any {defined $_} @foo }, }); Rate grep l_u any grep 300/s -- -81% -90% l_u 1565/s 422% -- -47% any 2941/s 881% 88% --