|
ar1[0] = 1,
$var1[1] = 2,
$var1[2] = 'привет'
$var1[3] = 1.2
$var1 = (1, 2, 'привет', 1.2);
а здесь $var1 = 1.2 т.е. последнее значение списка.
Допускается применять в списке другие списки, но в полученном списке
уже невозможно различить начало и конец включенных списков.
Пример:
@s1 = (1, 2, 3); # Первый список
@s2 = (6, 7, 8); # Второй
@s = (0, @s1, 4, 5, @s2, 9, 10); # Включаем списки @s1 и @s2
print @s; # Результат: 012345678910 - значения без пробелов.
Список без элементов обозначаестя как () и называется нуль-списком.
Списковое выражение можно употреблять как имя массива, но при этом
его нужно брать в круглые скобки.
Пример:
print ('январь','февраль','март')[1];
Результат: февраль
Список может быть присвоен списку только если каждый элемент в списке в
левой части выражения допустим по типу списку в правой части.
Пример:
($a, $b, $c) = (1, 2, 3); # $a = 1, $b = 2, $c = 3
Присваивание списков в скалярном контексте возвращает количество присвоенных
элементов.
Пример:
$x = (($a, $b, $c) = (1,2)); # Результат $x=2
В случае присваивания списка хешу список разсматривается как пары:
ключ-значение.
Пример:
%дни_месяца = ('январь', 31, 'февраль', 30);
Результат: $дни_месяца{январь} = 31, $дни_месяца{февраль} = 30
Для удобства записи можно использовать выражение с => .
Пример:
%дни_месяца = (
январь => 31,
февраль => 30,
);
Тип typeglobs
В Пел используется специальный внутренний тип typeglog для записи
массива всех переменных. Такие массивы начинаются с символа '*'.
Их удобно применять для передачи ссылок на массивы и хеши, но
в данной версии Пел уже есть возможность применять
ссылки поэтому это делается очень редко.
Единственно где это необходимо так это для работы со
ссылками на файлы. Например если вам нужно создать локальную
ссылку на файл в процедуре то это лучше сделать так:
sub new_sub
{ local *IN; # Ссылка на файл
open (IN, "test") || return undef; # Открыть файл. Во
|
|