LINUX.ORG.RU

фичи perl [5.12]


0

0

Собственно, интересная штука, функция `each` для списков

print $val.$i while (my ($i, $val) = each @a);

Соответственно возвращает номер и значение. Раньше (>5.12) each был только для хэшей.



Последнее исправление: oh (всего исправлений: 1)

Ответ на: комментарий от kranky

А если надо использовать не только элемент, но и его номер в масиве?

алсо, давайте сюда накидаем что-нибудь интересного

oh
() автор топика
Ответ на: комментарий от kranky

для очень больших массивов всё-таки лучше использовать while - он подгружает элементы по мере надобности. большее время работы, меньший расход памяти.

foreach же сразу всё подсасывает в память и начинает работать - меньшее время работы, больший расход памяти.

anonymous
()
Ответ на: комментарий от anonymous

> всё-таки лучше использовать while

...

foreach же сразу всё подсасывает в память



не понял???

это обман ;) либо я в самом деле не понял.

idle ★★★★★
()
Ответ на: комментарий от anonymous

Для файловых дескрипторов это справедливо: foreach (<FILE>) полностью считывает файл в память, и только потом запускает блок обработки, но врятли есть какая-то разница, когда у нас и так массив в памяти.

kranky ★★★★★
()
Ответ на: комментарий от kranky

верно, я с чего-то решил, что разговор о файлах и сокетах. для всего остального разница действительно не принципиальна. сорри.

anonymous
()

Интересный апдейт:
http://onperl.ru/onperl/2010/06/esche-raz-pro-each-v-512.html

также важно, что изменение массива (с помощью push или pop) и даже присвоение новых значений не изменяет позицию счетчика

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