Читаем Язык программирования Perl полностью

В Perl есть особенные строки, очень похожие на литералы: это строки, заключенные в обратные апострофы (back-quotes, backticks) ``, для которых также есть эквивалентная запись в виде qx. Особенность таких строк заключается в том, что их содержимое рассматривается как синхронный вызов внешней программы или команды операционной системы, которая выполняется во время работы Perl-программы. Фактически это операция выполнения программы. Результат выполнения указанной внешней программы становится значением конструкции qx. При этом в ней производится интерполяция. Так, например, в среде MS Windows или Linux с помощью команды dir можно получить список MP3-файлов и поместить его в переменную:

$music_files = `dir *.mp3`; # или qx(dir \*.mp3)

Таким же образом можно легко воспользоваться услугами любой другой программы. Недаром Perl часто называют "склеивающим языком" (glue language): с помощью Perl-программы можно обращаться к имеющимся программам, получать результат их выполнения и обрабатывать его по усмотрению программиста. Так, упомянутый в лекции 1 прием использования программ-фильтров получил в Perl дальнейшее развитие. Другие примеры использования операции выполнения программы приведены в лекции 16.

Встречается еще один тип строковых литералов, называемых V-строки ("V-strings" - строки версий), хотя он считается устаревшим и может не поддерживаться в будущем.

v1.20.300.4000 # то же, что "\x{1}\x{14}\x{12c}\x{fa0}"

v9786 # "смайлик" ? (символ Unicode \x{263A})

v79.107.33 # строка 'Ok!'

79.107.33 # в литерале с несколькими точками можно без "v"

V-строки полезны для сравнения "номеров" версий с помощью операций строкового сравнения, например:

$version = v5.8.7;

print "Версия подходит\n" if $version ge v5.8.0;

V-строки иногда также применяются для записи сетевых адресов IPv4, например: v127.0.0.1.

Кроме escape-последовательностей, описанных в лекции 2, в Perl есть особые управляющие последовательности, предназначенные для преобразования символов в строковом литерале. Они приведены в таблице 7.1. С их помощью преобразуется либо один символ, следующий за escape-последовательностью, либо несколько символов до отменяющей последовательности.

Таблица 7.1. Преобразующие escape-последовательности

Управляющая последовательностьМнемоника символаПреобразование
\uUpper caseпреобразовать следующий символ к верхнему регистру
\lLower caseпреобразовать следующий символ к нижнему регистру
\UUpper caseпреобразовать символы до \E к верхнему регистру
\LLower caseпреобразовать символы до \E к нижнему регистру
\QQuoteотменить специальное значение символов вплоть до \E
\EEndзавершить действие \U или \L или \Q

Применение этих преобразующих escape-последовательностей можно проиллюстрировать такими примерами:

use locale; # для правильной обработки кириллицы

$name = 'мария'; # будем преобразовывать значение переменной

print "\u$name"; # будет выведено: Мария

print "\U$name\E"; # будет выведено: МАРИЯ

print "\Q$name\E"; # будет выведено: \м\а\р\и\я

Аналогичного результата можно достигнуть при использовании некоторых строковых функций, о которых пойдет речь далее в этой лекции.

Еще одним видом непосредственной записи в программе текстовой информации являются так называемые встроенные документы (here-documents). Эта конструкция, заимствованная из командного языка Unix, представляет из себя встроенный в программу произвольный текст. Встроенный документ начинается символами <<, за которыми без пробелов указывается ограничитель, отмечающий конец документа. Все строки, начиная со следующей, рассматриваются как содержимое этого документа до тех пор, пока не встретится строка, состоящая только из указанного ограничителя. Обозначающий конец встроенного документа ограничитель должен записываться на отдельной строке с самого ее начала.

$here_document = <

Здесь располагается текст встроенного документа,

ограничитель которого записывается с начала

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии