| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Есть ли аналогия $#array? |
| Автор: DH 21.12.2005, 23:10 |
| после выполнения функции $f = $r->do_something(); в переменную $f пишеться ссылка на массив содержащий резултаты выполнения функции do_something() доступ к этим элеметам осуществляеться так: $f->[0] - первый элемет, и т.д. так вот, как мне узнать, длиину этого массива, тоесть: $f->[n] , где n - последний элемент массива. Сорри, возможно некоторые термина не так употребил, просто в России уже не живу достаточно долго. |
| Автор: korob2001 21.12.2005, 23:54 | ||||||||
Попробуй так:
Прошу заметить, что scalar возвратит число елементов массива, а не индекс последнего елемента. Для того, что бы получить индекс последнего елемента нужно от числа елементов отнять единицу.
Можно так же и не указывать scalar, если ты хорошо отличаешь скалярный и списковой контексты, т.е. выше указанный код можно написать и так:
Это всё хорошо, но для того, что бы обращаться к елементам массива с конца, гораздо разумнее делать вот так:
|
| Автор: Kannabismus 22.12.2005, 00:52 |
| ...и, разумеется, можно пользоваться не аналогией, а прямо $f->[$#$f] $#$f и будет индекс последнего элемента массива @$f |
| Автор: DH 22.12.2005, 01:26 |
| Всем большое спасибо! |