Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> в0пр0с н0вичка п0 хешам, хеш выв0дится в неправильн0м п0рядке 
:(
    Опции темы
Fayde12
Дата 20.9.2010, 17:59 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.9.2010

Репутация: нет
Всего: нет



Здраствуйте. П0м0гите н0вичку.

Код

my %hash = ( "1", "2", "3", "4", "5", "6", "7", "8" );
%hash = sort %hash;
while ( ($key, $value) = each %hash ){
print  "$key => $value\n";}


выв0дит:
1 2
3 4
7 8
5 6

0бьясните, п0чему значения выв0дятся не п0 п0рядку. Спасиб0.

PM MAIL   Вверх
vadiml
Дата 20.9.2010, 19:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 27.7.2007

Репутация: 5
Всего: 7



У Вас в клавиатуре буквы О нет?
PM MAIL Jabber   Вверх
Fayde12
Дата 20.9.2010, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.9.2010

Репутация: нет
Всего: нет



нет вмест0 нее н0ль
PM MAIL   Вверх
arto
Дата 20.9.2010, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



перл не сохраняет порядок элементов в хеше.

perldoc -q "How can I always keep my hash sorted"
PM MAIL ICQ   Вверх
ming
Дата 21.9.2010, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 30.1.2009
Где: Новосибирск

Репутация: 2
Всего: 3



в вашем случае можно отсортировать ключи
Код

my %hash = ( "1"=> "2", "3"=>"4", "5"=>"6", "7"=>"8" );
foreach $key (sort keys %hash) {
   my $value = $hash{$key};
   print  "$key => $value\n";
}


но в общем случае лучше использовать Tie::IxHash
Код

use Tie::IxHash;
tie(%hash, Tie::IxHash, 'a' => 1, 'b' => 2);

либо, если размер хэша невелик, можно хранить предварительно упорядоченный список ключей:
Код

my @keys_sorted = ("first", "second", "third", ....... , "last");
my %hash = ("first"=>"aaa", "second"=>"bbb", "third"=>"ccc", ....... , "last"=> "zzz");
my @values = @hash{@keys_sorted};

PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.