Обращение массива

Проблема

Требуется обратить массив (то есть переставить элементы в противоположном порядке).

Решение

Воспользуйтесь функцией reverse:
# Обращение @ARRAY дает @REVERSED
@REVERSED = reverse @ARRAY;
Также можно воспользоваться циклом for:
for ($i = $#ARRAY; $i >= 0; $i--) {
  # Сделать что-то с $ARRAY[$i]
}

Комментарий

Настоящее обращение списка выполняется функцией reverse; цикл for просто перебирает элементы в обратном порядке. Если обращенная копия списка не нужна, цикл for экономит память и время.
Если функция reverse используется для обращения только что отсортированного списка, логичнее будет сразу отсортировать список в нужном порядке. Например:
# Два шага: сортировка, затем обращение
@ascending = sort { $a cmp $b ) @users;
@descending = reverse @ascending;
# Один шаг: сортировка с обратным сравнением
@descending = sort { $b cmp $a } @users;

См. также

Описание функции reverse



2013-09-10 17:05:19

Proverte kod v komentariyah gde pro list tam oshibki detskie




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: