Функции push и pop.
Использование массива в качестве стека.
push(@mylist, $newval); $oldval = pop(@mylist);
Работает и со списками:
@mylist = (1, 2, 3); push(@mylist, 4, 5, 6);
Функция chomp.
@stuff = ("hello\n", "world\n", "happy days") chomp(@stuff);
Функция reverse.
@a = ( 7, 8, 9); @b = reverse(@a); # список-аргумент не меняется @b = reverse(@b);
Функция sort.
Возвращает отсортированный список не меняя оригинала.
@x = sort("small", "medium", "large");
Литеральное представление.
(1, 2, 3); ("fred", 4.5); ($a, 17); ($a+$b, 17); (); # пустой список
Оператор конструктора списка. Пример:
(1 .. 5); # (1, 2, 3, 4, 5); (1.2 .. 5.2); # (1.2, 2.2, 3.2, 4.2, 5.2); ($a .. $b); (1.3 .. 3.1); # (1.3, 2.3)
@a = ("fred", "betty"); @a = qw(fred betty);
Использование списочного литерала в функции
print("The answer is ", $a, "\n");
Обращение к элементам массива.
Элементы массива нумеруются целыми числами.
@fred = (7, 8, 9) $b = $fred[1]; $fred[5] = 0; ($fred[0], $fred[1]) = ($fred[1], $fred[0]);
Срез - обращение к списку элементов массива.
@fred[0, 1]; @fred[0, 1] = fred[1, 0]; @fred[0, 1, 2] = fred[1, 1, 1]; @fred[1, 2] = (9, 10);
@who = ( qw(fred barney betty wilma))[2, 3];
При обращении к элементу за пределами массива - undef. Массивы автоматически расширяются.
@betty = (1, 2, 3); $betty[6] = "ho"; # (1, 2, 3, undef, undef, undef, "ho");
@fred = qw(fred wilma pebbles dino); print $fred[-1]; # "dino" print $#fred; # 3 print $fred[$#fred]; # "dino"
Присваивание.
@fred = (1, 2, 3); @barney = @fred; @huh = 1; #(1)
@fred = qw(one two); @barney = (4, 5, @fred, 6, 7); @barney = (@barney, "last");
($a, $b, $c) = (1, 2, 3); ($a, $b) = ($b, $c); ($d, @fred) = ($a, $b, $c);
Если переменная-массив присваивается переменной-скаляру - размер массива:
@fred = (4, 5, 6); $a= @fred;
Список и массив.
Список - это упорядоченные скалярные данные. Массив - переменная, которая содержит список.