Как я могу выполнить grep по массиву, отфильтровывая совпадения?

Есть ли быстрый и простой способ поиска в массиве элементов, удовлетворяющих некоторому тесту и , удалить их из исходного массива?

Например, я хотел бы

@a = (1, 7, 6, 3, 8, 4);
@b = grep_filter { $_ > 5 } @a;

# now @b = (7, 6, 8)
# and @a = (1, 3, 4)

Другими словами, я хочу разбить массив на два массива: те, которые соответствуют, и те, которые не соответствуют определенному условию.

5
задан Juan A. Navarro 15 July 2011 в 11:34
поделиться