|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexey V Drougov 2:5020/400 28 Nov 2000 16:47:39 To : All Subject : Re: кусок скрипта --------------------------------------------------------------------------------
Hello, people !
Dear Kozachenko Alexey,
а Вы случайно не издеваетесь ?
Только вот эти Ваши утверждения правильны:
. - любой символ
^ - начало строки
$ - конец строки
Все остальное - нонсенс (См ниже).
On Tue, 28 Nov 2000, Kozachenko Alexey wrote:
> Да действительно, оператор =~ (или =~m// ) ищет вхождение подстроки в
> строку.
Hе вхождение подстроки а matching operation - совпадение по шаблону.
Поэтому если в $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 eq $today) { ...
>
> Модификаторы
> . - любой символ
> .+ - любое количество символов
Эх.
> ^ - начало строки
> $ - конец строки
>
> Вроде все правильно.
:)
> С уважением, Козаченко Алексей.
Это не личное, это ко всем, кто дает советы не проверяя их
даже на простых примерах.
Пока!
- ---
TSB Russian Express, Moscow
Alexey V. Drougov, friendof@express.ru
http://www.express.ru
--- ifmail v.2.15dev5
* Origin: Russian Express I.S.P. (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3951b7f50550.html, оценка из 5, голосов 10
|