Power Perl Education главная страница возможности Power Guest Book темы оформления настройка скрипта FAQ Download благодарности

Массивы и списочные данные.

Список и массив.

Список - это упорядоченные скалярные данные. Массив - переменная, которая содержит список.

Литеральное представление.

(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";

Наши партнёры:
Каталог продукции ООО ВС Подшипник. Информация и прайс.
Советы и примеры - ремонтируем самостоятельно
Для вас Кулинарная книга, рецепты на каждый день.
Дамский уголок - внешность, здоровье, советы и консультации.


Copyright © ClericICN, 2002 - 2009