Обращение к элементам массива

Всем, кто уже работал с массивами в других языках, покажется вполне естественным, что в Perl предусмотрена возможность обращения к элементу массива по индексу. Элементы массивов нумеруются последовательными целыми числами с шагом 1, начиная с нуля:

$fred[0] = "yabba";
$fred[1] = "dabba";
$fred[2] = "doo";

Имя массива (в данном случае "fred") существует в отдельном пространстве имен, не зависимом от скаляров. В той же программе можно создать скалярную переменную с именем $fred; Perl будет различать эти переменные и не перепутает их. (Зато перепутает программист, который будет заниматься сопровождением вашего кода, так что не стоит из прихоти называть все переменные одним именем!) Элементы массива вида $fred[2] могут использоваться везде3, где может использоваться скалярная переменная типа $fred. Например, можно получить значение элемента массива или изменить его с помощью тех же выражений, которые уже встречались нам в предыдущей главе:

print $fred[0];
$fred[2] = "diddley";
$fred[1] .= "whatsis";

Конечно, вместо индекса может использоваться любое выражение с числовым результатом. Если оно не является целым числом, то будет автоматически усечено до ближайшего меньшего целого:

$number = 2.71828;
print $fred[$number - 1]; # Равносильно print $fred[1]

Если индекс обозначает элемент, выходящий за границы массива, соответствующее значение будет равно undef.


Все происходит так же, как с обычными скалярными переменными; если в переменной никогда не сохранялось значение, она содержит undef:

$blank = $fred[ 142_857 ]; # Неиспользованный элемент массива содержит undef
$blanc = $mel; # Неиспользованный скаляр $mel также содержит undef

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
в списочном контексте
Главная служебная переменная: $_
Интерполяция массивов в строках
Использование выражений, создающих скаляры, в списочном контексте
Использование выражений, создающих списки, в скалярном контексте

Вернуться в раздел: Perl / 2. Списки и массивы