29 ноября 2011

Perl List::MoreUtils

Это модуль для работы с массивами, очень надо сказать простой и удобный, какие функции там есть:

 

  • 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; # это тоже уникализатор

Вообще самая красивая и обычная уникализация конечно елается через ключи хэша.


Видеочат рулетка