Титульная страница
ISO 9000 ISO 14000 Forum
Титульная страница
Цель системы качества
Управление качеством
ISO
ISO 9000
ISO 13485
ISO 14000
ISO 17025
OHSAS 18001
ISO 19011
Total Quality Management
Project Management
Фармацевтика
Отраслевые стандарты
Информационные технологии
Оформление документации
Ссылки 
Поиск на сайте
Forum
Реклама на сайте





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

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

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

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

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

Rambler's Top100
Hosted by uCoz