Установка Perl из бинарного дистрибутива обычно не представляет трудностей и сводится к распаковке файлов из загруженного архива. Для удобства работы имя каталога с исполняемыми файлами perl добавляется в системный список путей для поиска исполняемых программ (в переменную окружения PATH). Обычно все необходимые действия по установке выполняет программа-инсталлятор. После завершения установки нужно проверить доступность исполняющей системы perl. Это можно сделать, выполнив такую команду (в терминальном окне Unix, в командном окне Windows или в окне интерпретатора cmd на Pocket PC):
perl -v
На экране должны появиться сообщения, описывающие версию языка и авторские права:
This is perl, v5.8.7 built for MSWin32-x86-multi-thread Copyright 1987-2005, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Если вы увидели подобное сообщение, значит, Perl корректно установлен и готов к использованию, так что можно уже приступать к его изучению. Чем мы и займемся, начиная со следующей лекции.
Лекция 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 33 восьмеричный код символа (например, 033) x1b шестнадцатеричный код символа (например, 1B) Cc управляющая последовательность (например, Control+C) x{263A} двухбайтный символ набора Unicode (например, ?) N{sigma} именованный символ набора Unicode (например, ?) " символ двойной кавычки (quote) ' символ одинарного апострофа (apostrophe) \ символ обратной черты (backslash) $ любой другой символ, как он есть (например, знак доллара)
В литеральных строках, заключенных в двойные кавычки, выполняется замена каждой escape-последовательности на соответствующее значение специального символа. Такая подстановка называется интерполяцией, например:
"символ перевода на новую строку:n" "словаt,разделенныеt табуляцией" "вставка "кавычек" в литерал, заключенный в кавычки"
Если интерполяция управляющих последовательностей не требуется, то строковый литерал нужно заключить в одинарные апострофы:
'обратная косая с буквой n:n' 'здесь t - это обратная косая и буква t' 'вставка 'апострофов' в литерал, заключенный в апострофы'
В этом случае из escape-последовательностей только ' и \ заменяются на символы апострофа и обратной черты. А остальные последовательности, такие как 'n' или 'x00', представляют обычные символы. Если необходимо вставить в строковый литерал апострофы, то строку заключают в двойные кавычки, и наоборот:
'книга "Изучаем Perl"' "книга 'Изучаем Perl'"
Строковые литералы, заключенные в одинарные апострофы или в двойные кавычки, могут располагаться в программе на нескольких строках, например:
'А это пример строкового литерала, расположенного в программе на нескольких строках'
Поскольку здесь сохраняются невидимые символы перехода на новую строку, многострочные литералы удобно использовать для записи текста, предназначенного для вывода на печать на нескольких строках. Строковые литералы могут не содержать ни одного символа. Это так называемые "пустые строки", которые записываются как два апострофа или две кавычки без пробела между ними ('' или "").
Альтернативные способы записи строковых литералов будут рассмотрены в лекции 7, в которой излагаются возможности строковых данных и приемы работы со строками.
Как известно, переменные - это программные объекты для хранения во время выполнения программы данных об объектах реального мира. В Perl имеются две основные разновидности данных: строки и числа, называемые скалярными данными, то есть данными, представляющими единичное значение. К скалярам также относятся ссылки, которые будут рассмотрены в лекции 11.