Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Ruslan Sulemanov                     2:4635/1024.27 25 Feb 2003  13:37:16
 To : Artem Chuprina
 Subject : prog error
 -------------------------------------------------------------------------------- 
 
  RS>>>> sub soonpos
  RS>>>> {
  RS>>>> undef $word;
  RS>>>> local $word=shift @_;
  RS>>>> $_=$fullpaga;               # $fullpaga - весь текст в одной строке
  RS>>>>    while(/$word/gc)         # $word - слово из текста
  RS>>>>        {
  RS>>>>         undef $fopos;
  RS>>>>         $fopos= pos;
  RS>>>>         $poswd.=$fopos." ";  <-----  цыклит на этой строке
  AC>>> "цыклить" на этой строке не может, поскольку в ней нет цикла.
  AC>>> Циклиться можно на while, и ничего удивительного я в этом не вижу,
  AC>>> если у тебя в $_ есть вхождение $word. Ибо в скалярном контексте
  AC>>> проверка каждый раз идет с начала строки. А кому надо начиная с
  AC>>> pos(), те вставляют в регекс \G (perldoc perlre).
  RS>>     ошибка была из-за того что некоторые значения в $word
  RS>>     были пyстой строкой, поэтомy цыклило.
  RS>>     p.s \G ссылается на текyщyю позицию поиска, а мне надо начинать
  RS>>            сначала строки, тоесть \G дyмаю здесь ненyжен.
  AC> У тебя цикл не по строкам, а по вхождениям $word, так что если каждый
  AC> раз
  AC> начинать с начала, он будет вечным. Или я чего-то не понимаю... Впрочем,
  AC> пустые варианты - тоже вариант. Я про него подумал, но не написал, а зря -
  AC> это ж не split, оно може само и не двигать курсор. Hе помню уже, в каких
  AC> случаях он автомагически движется при пустом матче.
 
     модификатор /g имеет дополнительные свойства при поиске вместе
     со спец.переменной $_ стоящей слева от модификатора, она полyчает
     последнее состояние поиска, и при каждом обращение к цыклy(к кодy)
     поиск бyдет продолжаться с того места, на котором он остановился
     в последний раз и так до конца $_, если шаблон при первой проверке
     в цыкле небyдет найден, то цыкл просто завершается.
                                                               RSR
 --- GoldED+/386 1.0.0
  * Origin: E-mail: support@icu.net.ua (2:4635/1024.27)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 prog error   Ruslan Sulemanov   23 Feb 2003 13:11:35 
 Re: prog error   Artem Chuprina   23 Feb 2003 16:58:07 
 prog error   Ruslan Sulemanov   24 Feb 2003 11:12:05 
 Re: prog error   Artem Chuprina   25 Feb 2003 01:00:54 
 prog error   Ruslan Sulemanov   25 Feb 2003 13:37:16 
 prog error   Renat Araslanow   25 Feb 2003 23:26:49 
 prog error   Ruslan Sulemanov   27 Feb 2003 16:49:43 
 prog error   Renat Araslanow   01 Mar 2003 13:30:56 
 prog error   Ruslan Sulemanov   02 Mar 2003 15:15:01 
Архивное /ru.perl/45933e5b6685.html, оценка 1 из 5, голосов 12
Яндекс.Метрика
Valid HTML 4.01 Transitional