Автор Гілка: просвітіть мене в perl-і  (Прочитано 1175 раз)

Відсутній Volodymyrko

  • Графоман
  • ****
  • дописів: 370
  • Карма: +0/-0
  • I Like FreeBSD !
треба мені посортувати слова (імена) на укр. та анг мовах..
спочатку просто пробую

#!/usr/bin/perl
$r='в' cmp 'к';
printf ("r = $r \n");

$r= 'к' cmp 'в';
printf ("r = $r \n");

%hash = ('1'=>'в','7'=>'к','3'=>'g','2'=>'z');

@keys = sort { $hash{$a} cmp $hash{$b} } keys %hash;

foreach my $key ( @keys )
        {
        printf " %s %s\n", $key, $hash{$key};
}

і результат

r = 1
r = -1
 3 g
 2 z
 7 к
 1 в


якщо просто порівнювати  к та в  то нормально порівнює 1 та -1 відповідно

але чого воно к та в не правильно сортує потім в хеш-масиві.. або "шо я не так роблю" !!!

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: просвітіть мене в perl-і
« Відповідей #1 : 2010-01-01 14:26:59 »
"шо я не так роблю" !!!
Використовуєте Perl. Для цього є Python яке це робить дуже елегантно і вміє сортувати навіть масиви/хеші цілком.