|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrew Muhametshin 2:5020/400 21 Feb 2003 07:33:38 To : All Subject : Как получить упорядоченный DBM по значению -------------------------------------------------------------------------------- А не будет ли так любезен многоуважаемый Алл показать реально работающий пример субжа. Именно не по ключю как в мане DB_File в котором есть пример сортировки по ключам хеша, а по значению, а то я так и не понял как получить сортированный по значению DBM файл. Дайте маленький примерчик от чего можно было бы оттолкнутся. Повторю - Hеобходима сортировка именно по принципу той что в мане по DB_File с использованием BTREE, а типовой метод типа: foreach $key(sort {$hash{$a} cmp $hash{$b}} keys %hash) не годтся, так как предполагается растущий хеш не менее ста тысяч записей, а ресурсов не так уж и много. Извините за цитирование манов, но это для полноты вопроса. --------------------------------------------- use strict ; use DB_File ; use vars qw( %h $k $v ) ; sub Compare{my ($key1, $key2) = @_ ; "\L$key1" cmp "\L$key2" ;} $DB_BTREE->{'compare'} = \&Compare ; tie %h, "DB_File", "test.db", O_RDWR|O_CREAT, 0640, $DB_BTREE; for my $word (qw(abc bcd cde def fgh)){ $h{$word} = $i++;} while (($k, $v) = each %h) { print "$k -> $v\n" } --------------------------------------------- Заранее благодарю, Андрей М. --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/9104c4c1e798.html, оценка из 5, голосов 12
|