Выбрать главу

Редкая компьютерная программа обходится без использования числовых литералов. В программе на 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

\033 восьмеричный код символа (например, 033)