While the new functions in core are a lot faster still, at least for any, List::Util has been way faster than grep.
use strict; use warnings; use v5.42; use feature 'keyword_any'; no warnings 'experimental::keyword_any'; use List::Util; use Benchmark 'cmpthese'; my @list = 0 .. 1_000_000; my %hash = map { $_ => 1 } @list; cmpthese(-5, { 'grep' => sub { return 1 if 0 != grep exists $hash{$_}, @list }, 'List::Util::any' => sub { return 1 if List::Util::any { exists $ +hash{$_} } @list }, 'core any' => sub { return 1 if any { exists $hash{$_} } @list }, });
Rate grep List::Util::any core any grep 14.1/s -- -98% -99% List::Util::any 634/s 4412% -- -46% core any 1168/s 8209% 84% --
In reply to Re^3: Why doesn't exist work with hash slices?
by 1nickt
in thread Why doesn't exist work with hash slices?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |