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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Ilgiz Kalmetev                       2:5011/36.6    07 Sep 2000  16:56:34
 To : All
 Subject : Re: eval "tr..." не работает
 -------------------------------------------------------------------------------- 
 
 
  Wed, 06 Sep 00 21:56:26 +0600, Serge Matveev ==>: 
  
 > IK> #!/usr/bin/perl -w
 > IK> # Хочется перевести заглавные буквы в строчный регистр (для koi8-r)
  
 >     Я несколько не по вопросу, но почему бы не сделать use locale и не
 > пользовать обычный lc()?
 
     Потому что вообще-то это критический кусок из основной программы. Я 
     написал (для себя) перекодировщик кириллических текстов (cp1251, koi8-r, 
     cp866, iso-8859-5, mac) с автоопределением кодировок. Т.о. для всех 
     кодировок локаль не припасешь.
     
     Перекодировщик в целом нормально работает. Кроме вот этого самого места -
     upper case -> lower case. Причем, если в tr подставлять константы, вот
     так:
 
 if    ($charset eq "koi") { $text =~ tr/\xB3\xE0-\xFF/\xA3\xC0-\xDF/; }
 elsif ($charset eq "win") { $text =~ tr/\xA8\xC0-\xDF/\xB8\xE0-\xFF/; }
 elsif ($charset eq "alt") { $text =~ tr/\xF0\x80-\x9F/\xF1\xA0-\xAF\xE0-\xEF/; }
 elsif ($charset eq "mac") { $text =~ tr/\335\200-\237/\336\340-\377/; }
 elsif ($charset eq "iso") { $text =~ tr/\241\260-\317/\361\320-\357/; }
 else { die "getCharsetScore: dont know charset $charset\n"  }
 
     то все работает, а вот с переменными почему-то затык.
 
     Хочется с этим разобраться, потому что вышеприведенный кусок некрасив, 
     и, что более существенно, если от него избавиться, то для добавления-
     удаления кодировки в тексте программы надо будет править только одно место.
     
 -- 
               Ilgiz Kalmetev        
 --- slrn/0.9.5.3 (UNIX)
  * Origin: GoodPlace (2:5011/36.6@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 eval "tr..." не работает   Ilgiz Kalmetev   06 Sep 2000 16:03:53 
 eval "tr..." не работает   Serge Matveev   06 Sep 2000 22:56:26 
 Re: eval "tr..." не работает   Ilgiz Kalmetev   07 Sep 2000 16:56:34 
 Re: eval "tr..." не работает   Pavel Kurnosoff   07 Sep 2000 23:48:08 
Архивное /ru.perl/14697eb8d9b91.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional