Спецификация языка Perl


П2.2 Cтруктуры данных



П2.2 Cтруктуры данных

Perl поддерживает три типа данных:

  • скаляры
  • массивы скаляров
  • ассоциативные массивы скаляров (так называемые хэши).

Обычные массивы, как и в языке C, индексируются числами, начиная с нуля. Ассоциативные массивы индексируются строками. Простые скаляры (в дальнейшем мы будем также называть их переменными) всегда начинаются со знака доллара: $, даже в том случае, когда мы обращаемся к элементу массива. ¯ $day простая переменная day

$day[28] 29 элемент массива day

$day{'Feb'} значение 'Feb' из хэша %day

$#day последний индекс массива @day

Простой массив начинается со знака @: ¯ @day массив day - ($day[1],$day[2],...)

@day[3,4,5] то же, что и @day[3..5]

Ассоциативный массив (хэш) начинается со знака процент %:

%day (key1, val1, key2, val2, ...)

Каждый тип данных имеет свое именное пространство, поэтому вы можете использовать одно и то же имя одновременно для скалярной переменной, массива или хэша (а также для подпрограммы или метки) без опасения, что произойдет ошибка. Perl различает большие и маленькие буквы: FOO, foo и Foo будут рассматриваться Perl-ом как разные переменные. Имена, начинающиеся с буквы или знака подчеркивания, могут в дальнейшем содержать в себе цифры или знаки подчеркивания. Имена, начинающиеся с цифры, могут в дальнейшем содержать только цифры. Имена, начинающиеся не с буквы, цифры или подчерка должны состоять только из одного символа. Большинство таких имен зарезервировано, например $$ является идентификатором текущего процесса. Интерпретация команды или величины часто зависит от требований контекста. Существует два основных контекста: скалярный и списковый. Некоторые операции возвращают список величин если в контексте подразумевается список и одну величину, если контекст скалярный. Например, операция &ora_fetch в скалярном контексте возвращает количество выбранных строк:

$nfields = &ora_fetch($csr);

В списковом контексте она возвращает массив выбранных строк:

@array = &ora_fetch($csr);

Левый аргумент определяет контекст правого аргумента.




Начало  Назад  Вперед