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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Igor Trofimov                        2:5020/400     10 Jul 2003  21:34:08
 To : Mikhail Polykovsky
 Subject : Re: мистика ;)
 -------------------------------------------------------------------------------- 
 
  MP> Покажи код, вдруг там чего...
 
 Весь код показывать неохота - большой и нудный...
 
 ну вот чуть поподробнее кусок
 
       $stmt2->execute($ID);
       my $LocalCount = 0;
       my $LocalCount2 = 0;
       while ( $stmt2->fetch(\@row2) == 0 )
       {
           $LocalCount++;
           my $Section = $row2[0];
           my $SectionName = $row2[1];
 
           # Strange, but unnecessary!!!!!
           $SectionName .= '';
 
           if (exists($Parts{$SectionName}))
           {
             $Msg .= $Parts{$SectionName};
             $LocalCount2++;
           }
       }
       $stmt2->close();
 
 Кстати, обнаружил аналогичное поведение в аналогичной ситуации в другом
 месте скрипта.
 
 Может, существенно, в начале прописано
 
 use encoding "cp1251";
 use open IO => ':encoding(cp1251)';
 В попытках окончательно убедиться в глюке написал следующий фрагмент:
 
           my $SectionName = $row2[1];
 
           my $Dummy = $SectionName;
 
           print '<';
           print int( exists($Parts{$SectionName}) );
           print int( exists($Parts{$Dummy}) );
           print '|';
           $Dummy .= '';
           print int( exists($Parts{$SectionName}) );
           print int( exists($Parts{$Dummy}) );
           print ">\n";
 То есть мы просто копируем занчение в другую переменную и начинаем выводить
 результаты exists на этих двух переменных.  Потом проводим конкатенацию
 одной из переменных пустой строкой и снова выводим результаты exists.
 
 Hу, в общем, получилось что-то типа
 <00|01>
 <00|00>
 <00|01>
 <00|01>
 ...
 
 т.е. сперва он ВООБЩЕ ничего не находит... а потом - если действительно
 заданный ключ существует - то он находит его по переменной, прошедшей
 конкатенацию, и не находит по второй.
 
 Это все прелестно работало на perl 5.5
 
 на сейчашнем сервере perl 5.8
 
 Как я понял, за это время многое изменилось.  Все-таки грешу на unicode'ные
 дела.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 мистика ;)   Igor Trofimov   08 Jul 2003 23:57:46 
 Re: мистика ;)   Mikhail Polykovsky   09 Jul 2003 07:27:57 
 Re: мистика ;)   Igor Trofimov   09 Jul 2003 20:22:03 
 Re[2]: мистика ;)   Mikhail Polykovsky   10 Jul 2003 10:32:22 
 Re: мистика ;)   Igor Trofimov   10 Jul 2003 21:34:08 
 Re: мистика ;)   Ivan Frolcov   12 Jul 2003 13:42:15 
 Re: мистика ;)   Igor Trofimov   12 Jul 2003 21:27:10 
 Re: мистика ;)   Protasovitski Andrei   10 Jul 2003 10:19:01 
 Re: мистика ;)   Igor Trofimov   10 Jul 2003 21:27:05 
Архивное /ru.perl/4549dd94cd56.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional