|   | 
Массивы и списочные данные.
Список - это упорядоченные скалярные данные. Массив - переменная,
которая содержит список.
 
(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;
 
Присваивание.
@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;
 
Обращение к элементам массива.
Элементы массива нумеруются целыми числами.
 
@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"
 
Функции push и pop.
Использование массива в качестве стека.
 
push(@mylist, $newval);
$oldval = pop(@mylist);
 
Работает и со списками:
 
@mylist = (1, 2, 3);
push(@mylist, 4, 5, 6);
 
Функции shift и unshift.
Функция reverse.
@a = ( 7, 8, 9);
@b = reverse(@a);		# список-аргумент не меняется
@b = reverse(@b);
 
Функция sort.
Возвращает отсортированный список не меняя оригинала.
 
@x = sort("small", "medium", "large");
Функция chomp.
@stuff = ("hello\n", "world\n", "happy days")
chomp(@stuff);
@fred = ("a", "bb");
$all = "Now @fred";
 | 
  |