Иллюстрированный самоучитель по Perl

Списковые операции. Операции заключения в кавычки.

Операция q{}

Эта операция аналогична заданию строкового литерала в одинарных кавычках. В нем каждый символ строки представляет самого себя, подстановка значений переменных не выполняется. Единственное исключение – обратная косая черта, за которой следует символ-разделитель или еще одна обратная косая черта. Эти последовательности символов позволяют ввести непосредственно в строку символ разделителя или обратную косую черту (хотя обратная косая черта и так представляет саму себя). Несколько примеров:

q-сДескриптор \<FILE\"; # Строка символов: Дескриптор <FILE>
д!Каталог \\bin\usr\n!; # Строка символов; Каталог \bin\usr\n
'Каталог \\bin\usr\n'; # Эквивалентно предыдущей операции

Операция qq{}

Эта операция аналогична заданию строкового литерала в двойных кавычках. При ее выполнении осуществляется подстановка в строку значений скалярных переменных, начинающихся с символа $, и переменных массивов скаляров, начинающихся с символа @, а также осуществляется интерпретация управляющих последовательностей. После выполнения указанных действий будут сформированы строковые данные. Для задания в строке символа разделителя, используемого в этой операции, можно воспользоваться обратной косой чертой перед этим символом. Несколько примеров:

qq(print\(\) – функция вывода); # Строка символов:
# print() – функция вывода $т = 123; qq/4enoe\t$m\n/; # Строка символов:
# Целое 123 "Ifenoe\t$m\n"; # Эквивалентно предыдущей операции

Операция qx{}

Эта операция аналогична заданию строкового литерала в обратных кавычках. При ее вычислении сначала осуществляется подстановка значений скалярных переменных и переменных массивов скаляров (если таковые присутствуют) в строку, заданную между разделителями операции, а затем полученная строка, как некая команда, передается на выполнение командному интерпретатору операционной системы и результат ее выполнения подставляется в формируемое операцией qx{} окончательное строковое значение. Таким способом можно ввести в программу Perl результаты выполнения определенных команд или пользовательских программ. Несколько примеров:

$file = "file.tmp";
qxfdel $file); # Удаление файла с именем file.tmp
$rez = qx(progl – a); # Переменная
$rez содержит результаты вывода
# на экран программы progl
$rez = 'progl – a~; # Эквивалентно предыдущей операции

Операция qw{}

Эта операция возвращает список слов, выделенных из строки, заданной между разделителями операции. Разделителями между словами считаются пробельные символы:

@m = qw(one two); I Эквивалентно: $m[0] = 'one'; $m[l] = 'two';

Действие операции qw{СТРОКА} эквивалентно действию встроенной функции:

split С ', qfCTPOKA});

(Описание функции split см. в части 10.)

Наиболее часто встречающаяся ошибка при использовании этой операции – отделить слова запятыми. При включенном режиме отображения предупреждений – w будет сгенерировано сообщение о том, что, возможно, запятая используется для разделения слов, а не входит в состав слова.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.