my $filter = sub { ... }; my @extracted = grep { $filter->() } @list; @list = grep { not $filter->() } @list;