Это модуль для работы с массивами, очень надо сказать простой и удобный, какие функции там есть:
- any
- all
- none
- notall
- true
- false
- firstidx
- first_index
- lastidx
- last_index
- insert_after
- insert_after_string
- apply indexes
- after
- after_incl
- before
- before_incl
- firstval
- first_value
- lastval
- last_value
- each_array
- each_arrayref
- pairwise
- natatime
- mesh
- zip
- uniq
- distinct
- minmax
- part
По описанию сюда были включены функции, которых так не хватало в List::Util
Что они делают ?
any - возвращает 1 если хотя бы один элемент массива удовлетворяет некоторому условию
all - если все элементы удовлетворяют ;)
none - не один не удовлетворяет
true - количество удовлетворивших
false - неудовлетворивших
first_index - возвращает индекс первого удовлетворившего
last_index - последний удовлетворивший
и куча подобных конструкций, далее функции иного типа:
apply - аналог map но не меняет исходный массив
zip - поочередно кладет в один массив элементы из заданных массивов
uniq - возвращает массив с уникальными элементами
и другие
Как итог. Я бы сказал это паршивые функции, которые делаются легко руками, но возможно иногда все же не нужно изобретать велосипеда, как сделал это я использовав uniq, вместо того чтобы вставить в код вот такую закорючку:
%seen=(); @unique = grep { ! $seen{$_} ++ } @array; # это тоже уникализатор
Вообще самая красивая и обычная уникализация конечно елается через ключи хэша.