Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > помогите разобратся с модификаторами


Автор: Aleshka 15.2.2008, 12:52
Не могу понять предназначение в операторах m//, s///  прочитал в книге но все равно не могу понять значение ключей /s и /m/. Понял что если используется ключ /s то поиск будет произволится в одной строке. Но при этом символ \n тоже будет рассматриватся оператором "." как символ, а вот /m относится будет к нескольким строкам. 
А можно привести несколько примеров и для чего еще данные ключи могут быть полезны. Спасибо!

Автор: amg 15.2.2008, 13:09
С ключом /s метасимвол . подходит и символу конца строки \n тоже. Этот ключ используется, например, когда многострочный файл помещается в одну скалярную переменную.

С ключом /m метасимволы ^ и $ подходят не только действительным началу и концу строки, но также и положениям сразу после и до символа конца строки \n.

Автор: Aleshka 15.2.2008, 14:35
 Amq, понял по поводу /s, а вот по поводу /m непойму немного.
Цитата

метасимволы ^ и $ подходят не только действительным началу и концу строки, но также и положениям сразу после и до символа конца строки \n.

Как это понять??? Не пойму как это понять 
Цитата

положение сразу после и до символа конца строки \n???
 Т.е если в скалярной переменной  хранятся несколько строк (хотя они интерпретируются как одно значение) и в данном случае будет разбиратся вся переменная (т.е несколько строк) и будет находить все значения ^  $ не только в начале и конце строки но и внутри.  Я  прав??

Автор: amg 15.2.2008, 14:54
Цитата(Aleshka @  15.2.2008,  14:35 Найти цитируемый пост)
Я  прав??
Да. А "настоящим" началу и концу строки при использовании модификатора /m (и без него, впрочем, тоже) соответствуют метасимволы \A и \Z (\z).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)