Язык программирования Perl
Шрифт:
В литеральных строках, заключенных в двойные кавычки, выполняется замена каждой escape-последовательности на соответствующее значение специального символа. Такая подстановка называется интерполяцией, например:
Если интерполяция управляющих последовательностей не требуется, то строковый литерал нужно заключить в одинарные апострофы:
В этом случае из escape-последовательностей только \' и \\ заменяются на символы апострофа и обратной черты. А остальные последовательности, такие как '\n' или '\x00', представляют обычные символы. Если необходимо вставить в строковый литерал апострофы, то строку заключают в двойные кавычки, и наоборот:
Строковые литералы, заключенные в одинарные апострофы или в двойные кавычки, могут располагаться в программе на нескольких строках, например:
Поскольку здесь сохраняются невидимые символы перехода на новую строку, многострочные литералы удобно использовать для записи текста, предназначенного для вывода на печать на нескольких строках. Строковые литералы могут не содержать ни одного символа. Это так называемые "пустые строки", которые записываются как два апострофа или две кавычки без пробела между ними ('' или "").
Альтернативные способы записи строковых литералов будут рассмотрены в лекции 7, в которой излагаются возможности строковых данных и приемы работы со строками.
Как известно, переменные - это программные объекты для хранения во время выполнения программы данных об объектах реального мира. В Perl имеются две основные разновидности данных: строки и числа, называемые скалярными данными, то есть данными, представляющими единичное значение. К скалярам также относятся ссылки, которые будут рассмотрены
Для хранения скалярных данных предназначены скалярные переменные, каждая из которых может содержать одно значение. Перед именем такой переменной ставится символ $, обозначающий скалярную величину ($ - это стилизованное "s", то есть scalar). Далее, в лекции 5, будет рассмотрен другой тип переменных - массивы, которые содержат множественные значения, логически связанные вместе. В массивах может одновременно хранится несколько скалярных значений, и имена массивов предваряются символом @ (@ - это стилизованное "a", то есть array). Поначалу эти "забавные символы" (funny characters, шутливо называемые "оккультными знаками" - sigils) перед именами переменных кажутся непривычными и даже лишними. Но позже вам раскроется глубокий смысл и удобство этих символов, официально называемых разыменовывающими префиксами. На первый взгляд очевидно, что они своим видом напоминают, какое значение содержит переменная - единичное или множественное. Скаляры представляют в Perl лингвистическое понятие единственного числа, а массивы - множественного числа. Вообще, переменные воплощают грамматическую идею существительных, в отличие от процедур или функций, исполняющих в программе роль глаголов.
Для именования пользовательских переменных в Perl применяются правила, обычно действующие и в других языках:
[x]. в имени допускается использовать латинские буквы, символы подчеркивания, которые приравниваются к буквам, и цифры;
[x]. имя переменной должно начинаться с буквы (длина имени переменной практически не ограничивается).
В Perl имена переменных принято записывать строчными буквами, при необходимости разделяя слова в имени символом подчеркивания, например:
В большинстве процедурных языков каждую переменную в программе требуется объявлять, определяя, какой тип данных допустимо хранить в ней: например, boolean, character, string, byte, short, integer, long, real, float или double. В Perl можно вводить переменные в любом месте программы без объявления. Чтобы использовать переменную, надо просто упомянуть ее имя в программе, обычно это происходит при присваивании ей начального значения.
Если значение переменной не присвоено, в ней хранится специальное неопределенное значение undef. Неопределенность значения переменной можно проверить с помощью встроенной функции defined, возвращающей истинное значение, если значение переменной определено. Одна и та же переменная может поочередно иметь неопределенное значение или хранить значение любого из основных типов, например, строку или число (целое или дробное):