Работа с массивами в Perl
Автор статьи не дает никаких гарантий, что код приведенный в ней будучи «преобразованный» с помощью Copy/Past заработает. Все примеры работали на момент написания статьи.
Перевод достаточно вольный. Комментарии и предложения оставляете в виде комментариев, в нижней части страницы
- Инициализация (очистка) массива.
- Определение существования элемента массива.
- Определение количества элементов в массиве.
Инициализация (очистка) массива.
Реализация
my @array = ();
Реализация
$#array — это индекс (порядковый номер) последнего элемента массива (на единицу меньше,
чем количество элементов в массиве, так как массив начинается с нуля).
Присвоение $#array изменяет длину массива @array, таким образом
вы можете уничтожить (или очистить) все элементы массива между
заданным при присвоении и последним. При присвоении -1, все элементы
уничтожаются и массив очищается.
Я рекомендую следующее решение:
$#array = -1;
Определение существования элемента массива
Реализация
print "Значение СУЩЕСТВУЕТ, но может быть неопределенно.\n" if exists $array[ $index ]; print "Значение ОПРЕДЕЛЕНО, но может быть false.\n" if defined $array[ $index ]; print "Зачениие элемента с индексом $index TRUE.\n" if $array[ $index ];
Определение количества элементов в массиве.
Реализация
Если вы хотите вывести количество элементов в массиве, то вот самый простой
способ:
print "size of array: " . @array . ".\n";
Реализация
Если вы хотите присвоить размер массива переменной, то просто используйте
скалярный контекст:
$size = @array; print "size of array: $size.\n";
Явно, скалярный контекст может быть получен с помощью функции scalar
$size = scalar @array; print "size of array: $size.\n";
Кроме этого, существует еще один способ получения количества элементов
массива. Я рекомендую использовать именно его:
Реализация
$size = $#array + 1;
Автор
Alex BATKO <abatko AT cs.mcgill.ca>
Спасибо всем, кто присылал комментарии и предложения.
Комментарии