PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 38


В качестве разделителей могут использоваться одинаковые символы, как в этом примере, или парные (для различных типов скобок):

$stnng     =      q[Jon   'Maddog'      Orwant];     it    Внутренние апострофы

Sstring    =      q{Jon   'Maddog' Orwant};     #     Внутренние апострофы

Sstring    =      q(Jon   'Maddog'      Orwant);     #     Внутренние апострофы

Sstring    =      q<Jon   'Maddog' Orwant>;     #     Внутренние апострофы

Концепция «встроенных документов» позаимствована из командных интер­претаторов (shell) и позволяет определять строки, содержащие большое количе­ство текста. Текст может интерпретироваться по правилам для строк, заключен­ных в апострофы или кавычки, и даже как перечень исполняемых команд — в зависимости от того, как задается завершающий идентификатор. Например, сле­дующий встроенный документ будет интерпретироваться по правилам для строк, заключенных в кавычки:

$а = «"EOF";

This is a multiline here document

terminated by EOF on a line by itself

EOF

Обратите внимание: после завершающего EOF точка с запятой не ставится. Встроенные документы более подробно рассматриваются в рецепте 1.11.

Предупреждение для программистов из других стран: в настоящее время Perl не обладает прямой поддержкой многобайтовых кодировок (в версии 5.006 ожи­дается поддержка Unicode), поэтому в тексте книги понятия байт и символ счита­ются идентичными.

1.1. Работа с подстроками

Проблема

Требуется получить или модифицировать не целую строку, а лишь ее часть. На­пример, вы прочитали запись с фиксированной структурой и теперь хотите из­влечь из нее отдельные поля.

Решение

Функция substr предназначена для чтения и записи отдельных байтов строки:

lvalue = substr($string,   Soffset,   4count); Svalue = substr($stnng,   Soffset);

substr($string,   Soffset,   Scount) = Snewstring;
substr($string,   Soffset)                    = Snewtail;

Функция unpack ограничивается доступом только для чтения, но при извлече­нии нескольких подстрок работает быстрее:




Начало  Назад  Вперед



Книжный магазин