Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документация, учебники по Perl.doc
Скачиваний:
3
Добавлен:
29.10.2018
Размер:
1.83 Mб
Скачать

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); Левый аргумент определяет контекст правого аргумента.

Скалярные величины

Скалярные переменные могут содержать различные простые типы данных, такие как числа, строки или ссылки. Они не могут содержать сложные типы, но могут содержать ссылку на массив или хэш. В булевском контексте скаляр принимает значение TRUE, если он содержит не нулевое число или не пустую строку. В Perl существует несколько способов записи чисел:

¯

12345

12345.67

.23E-10

0xffff шестнадцатеричная запись

0377 восьмеричная запись.

1_234_567_890 подчерк для удобства чтения.

Строки заключаются в одинарные или двойные кавычки. Использование кавычек в Perl такое же как в bourne shell-е: строка в двойных кавычках обрабатывается и вместо переменных подставляются их значения, а также обрабатываются бакслэш-последовательности, строки в одинарных кавычках рассматривается просто как последовательности символов. Используются также:

¯

\t табуляция

\n перевод строки

\r возврат каретки

\b пробел

\e символ Escape

\033 восьмеричный формат

\x1b шестнадцатеричный формат

\c[ управляющая последовательность (control)

\a сигнал (alarm)

\f переход на следующую страницу