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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     16 Jun 2000  12:59:05
 To : All
 Subject : Re: cmp
 -------------------------------------------------------------------------------- 
 
 Paul Kulchenko wrote:
 
 > 
 > Hi, Igor!
 > Igor Tseglevsky wrote in message <8i8es4$ons$1@sensi.pu.ru>...
 > >Кто может обьяснить, почему cmp не хочет сравнивать результаты работы
 > >функции?
 > >
 > >% loc.pl
 > >а б a в г д е я x ю к м л
 > >a x а б в г д е к л м ю я
 > >д г в a б а е л м к ю x я
 > >a x а б в г д е к л м ю я
 > >
 > >% cat loc.pl
 > >#!/usr/bin/perl -w
 > >
 > >use locale;
 > >use POSIX 'locale_h';
 > >setlocale(LC_ALL, 'ru_RU.KOI8-R');
 > >
 > >@bred = ('а', 'б', 'a', 'в', 'г', 'д', 'е', 'я', 'x', 'ю', 'к', 'м', 'л');
 > >
 > >print join (" ", @bred), "\n";
 > >
 > >print join (" ", sort { $a cmp $b } @bred), "\n";
 > >print join (" ", sort { lc($a) cmp lc($b) } @bred), "\n";
 > >print join (" ", sort { my $c = lc($a); my $d = lc($b); $c cmp $d } @bred),
 > >"\n";
 > >%
 > Честно говоря сначала не поверил, пока сам не убедился. Hеправильно работает
 > даже с английскими буквами, если указываешь use locale. Причем по
 > отдельности lc, uc и пр. и cmp работают правильно. Вместе -- нет. Почему --
 > не знаю. Попробую спросить в comp.*.
 
 И что интересно.
 
 lc($a) cmp lc($b) не работает, а lc($a).'' cmp lc($b).'' работает.
 Просто поразительно...
 
 Андрей
 --- ifmail v.2.15dev5
  * Origin: Chelindbank (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: cmp   Paul Kulchenko   15 Jun 2000 19:30:34 
 Re: cmp   Andrey Sapozhnikov   16 Jun 2000 12:59:05 
Архивное /ru.perl/9117a13b80e7.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional