Работа с массивами в Perl

Работа с массивами в Perl

Работа с массивами в Perl

Автор статьи не дает никаких гарантий, что код приведенный в ней будучи «преобразованный» с помощью Copy/Past заработает. Все примеры работали на момент написания статьи.

Перевод достаточно вольный. Комментарии и предложения оставляете в виде комментариев, в нижней части страницы

Alex BATKO
Оригинал (англ.): http://www.cs.mcgill.ca/~abatko/
<abatko AT cs.mcgill.ca>

Инициализация (очистка) массива.

Реализация

    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>

Спасибо всем, кто присылал комментарии и предложения.

См. еще

Комментарии