|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Kozachenko Alexey 2:5020/400 28 Nov 2000 17:26:24 To : All Subject : Re: кусок скрипта -------------------------------------------------------------------------------- Hi All! >Поэтому если в $today будут специальные символы - то результат может быть >несколько неожиданным, это относится и к нижеследующим примерам. Я это не отрицаю. >> Конструкция >> if ($inputline=~ /$today/) { >> print file_out ("$inputline"); >> } ищет вхождение переменной $today в строку $inputline c начала строки. >Hеверно. С начала строки - /^$today/ Согласен, конструкция просто ищет вхождение подстроки в строку. >> Чтобы найти входнение не сначала строки, а в любом месте, я бы написал так >> if ($inputline=~ /.+${today}.+/) { >> print file_out ("$inputline"); >> } > >Hеверно. .+ - один или более любых символов. >поэтому /$today/ подойдет прекрасно Что бы предыдущий пример был правильней можно написать так: if ($inputline=~ /.*${today}.*/) { print file_out ("$inputline"); } .* - ноль или более любых символов. >> Чтобы найти полное совпадение со строкой я бы написал так >> if ($inputline=~ /^${today}$/) { >> print file_out ("$inputline"); >> } >В общем случае неверно, к тому-же ненаглядно и медленнее, >лучше так: if ($inputline eq $today) { ... Hеверно в случае если $today содержит спец символы, а если там просто текст, то вполне верно. Hасчет ненаглядно и медленно я согласен Ваш пример лучше. П.С. Я действительно не проверял примеры, я пытаюсь хоть как-то помочь и направить человека в направлении куда копать. С уважением, Козаченко Алексей. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6577e6819a3f.html, оценка из 5, голосов 10
|