Текст книги "Язык программирования Perl"
Автор книги: Михаил Шохирев
сообщить о нарушении
Текущая страница: 2 (всего у книги 19 страниц)
Лекция 2. Литералы и скалярные данные
В этой лекции рассматриваются элементарные конструкции языка Perl: литералы и скалярные данные. Описываются форматы записи чисел, строк и правила именования скалярных переменных. Вводится понятие контекста. Приводится формат записи комментариев в программе. Даются начальные сведения о документировании программ с применением формата POD.
Цель лекции: освоить правила записи элементарных элементов языка, литералов и скаляров, необходимые для правильного оформления программ на языке Perl. Научиться комментировать программы с использованием однострочных комментариев и формата встроенной документации POD.
Perl – очень практичный язык, и изучить его основы довольно просто. Поскольку большинство синтаксических конструкций Perl основаны на языке С, то для программистов, знающих языки C, C++, C#, Java, JavaScript, Python или PHP, синтаксис Perl будет очень знакомым. Но и тот, кто раньше писал на языке Pascal, Fortran или Basic, легко привыкнет к нотации Perl. Нетрудно будет и тем, кто не знает ни одного языка программирования, поскольку Perl спроектирован так, чтобы новичок смог научиться писать на небольшом подмножестве языка, а затем постепенно углублялся в его тонкости. Знакомство с языком Perl мы начнем с правил записи литералов – непосредственного представления в программе значений данных таких как числа и строки. Иногда литералы неправильно называют константами, под которыми в программировании чаще имеют в виду имена, представляющие неизменяемые данные.
Редкая компьютерная программа обходится без использования числовых литералов. В программе на Perl числа записываются самым естественным образом. Так, например, выглядят десятичные целые числа, со знаками и без:
12 -34 +56
Столь же привычно выглядят и десятичные дробные числа, положительные и отрицательные. Целая часть по англоязычной традиции отделяется от дробной части десятичной точкой. Целая или дробная часть числа может не записываться, если она равна нулю:
.12 34. -456.78 +9.0
Для удобства чтения исходной программы человеком большие числа могут записываться с символом подчеркивания "_" в качестве разделителя разрядов:
123_456 -7_890_098 1_000_000_000_000
Очень маленькие или очень большие числовые значения, целые или дробные, удобно записывать в экспоненциальной форме (также называемой «научной» нотацией):
123E-4 -56e+7 8e9
Латинская буква "E" (заглавная или строчная) в подобных литералах читается как «умноженное на 10 в степени», то есть соответствует арифметическому выражению 123*10 -4. Знак "+" у основания и степени числа необязателен.
Иногда требуется записывать числа не в десятичной, а в других системах счисления. Для записи шестнадцатеричных чисел применяется префикс 0x. В этой системе счисления каждая цифра представляет 4 бита данных, а буквами от A до F (независимо от их регистра) обозначаются дополнительные "цифры" от 10 до 15. Так записываются в шестнадцатеричном виде числа 13, -10, 53392, и 1024:
0x0d -0x0A 0xD090 0x400
В некоторых случаях (например, при записи атрибутов файла в Unix) нагляднее изобразить числа в восьмеричной системе счисления. Обратите внимание, что восьмеричные числа записываются с ведущим нулем, а каждая цифра из диапазона от 0 до 7 представляет 3 бита данных, так что все числовые литералы из одних цифр с ведущим нулем рассматриваются как восьмеричные числа. Вот как будут выглядеть в восьмеричном виде числа 292, -438, 511, и 1024:
0444 -0666 0777 02000
Когда нужно представить двоичные числа, то перед ними ставится признак двоичной системы счисления 0b (каждая цифра 0 или 1 представляет 1 бит). Вот числа 17, -85, 238 и 1024, записанные как двоичные литералы:
0b00010001 -0b01010101 0b1110_1110 0b10000000000
Что касается внутреннего представления чисел в Perl, то они всегда хранятся в виде чисел с плавающей точкой двойной точности, что гарантирует максимальную точность вычислений. При необходимости предусмотрена возможность переключиться на целочисленную арифметику. Удобно и то, что при выводе числовые литералы, записанные в любой системе счисления, автоматически преобразуются к удобочитаемому десятичному виду.
В языке Perl нет специального обозначения для отдельных символов, в нем есть только символьные строки, которые иногда могут состоять из одного символа. Строковые литералы заключаются либо в двойные кавычки, либо в апострофы, называемые также одинарными кавычками, например:
«Это строка.» "А" 'это другая строка' '.'
Иногда в строковых литералах требуется представить специальный символ (управляющий символ или символ, отсутствующий на клавиатуре). Для этого используется так называемая escape-последовательность (называемая также управляющей последовательностью) – это символ "" (backslash, обратная косая черта), за которым следует один или несколько символов. Все знаки управляющей последовательности представляют один символ в строковом литерале. Например:
a звонок (Alert, bell) или 0x07 в 16-теричном представлении
b возврат на шаг (Backspace) или 0x08
e символ «эскейп» (Escape) или 0x1B
f прогон страницы (Form feed) или 0x0C
n новая строка (Newline) или 0x0A
r возврат каретки (Return) или 0x0D
t табуляция (Tabulation) или 0x09