Обращение массива
Проблема
Требуется обратить массив (то есть переставить элементы в противоположном порядке).
Решение
Воспользуйтесь функцией
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
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|