|
|
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
|