Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Re: Re: Re: Any Point in Uploading Tie::SortedHash

by Limbic~Region (Chancellor)
on Sep 06, 2003 at 18:16 UTC ( [id://289490]=note: print w/replies, xml ) Need Help??

in reply to Re: Re: Re: Any Point in Uploading Tie::SortedHash
in thread Any Point in Uploading Tie::SortedHash

This looks potentially really cool and I would like to incorporate this technique as one of the possible options of my module. The problem is I can't seem to get DB_BTREE->{compare} to do anything meaningful. I get the same result no matter what I make the sort routine.
#!/usr/bin/perl -w use strict; use DB_File; tie my %h, 'DB_File', undef, O_RDWR|O_CREAT, 0666, $DB_BTREE or die "DB_File tie failed: $!"; #$DB_BTREE->{compare} = sub { $h{$_[1]} <=> $h{$_[0]} }; #$DB_BTREE->{compare} = sub { $h{$_[0]} <=> $h{$_[1]} }; #$DB_BTREE->{compare} = sub { $_[0] cmp $_[1] }; #$DB_BTREE->{compare} = sub { $_[1] cmp $_[0] }; %h = ( 'John' => 33, 'Jacob' => 29, 'Jingle' => 15, 'Heimer' => 48, 'Smitz' => 12, ); print "$_ : $h{$_}\n" for keys %h;

What am I missing? - L~R

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Any Point in Uploading Tie::SortedHash
by danger (Priest) on Sep 06, 2003 at 18:41 UTC

    Set $DB_BTREE->{compare} before tieing the hash. However, accessing the tied hash in the compare routine leads to deep recursion (FETCH method uses the compare routine to navigate the tree).

      While this sounded like a good thing, it doesn't provide near enough functionality for the purpose of my module.
    • Ability to change the sort routine on the fly
    • Ability to sort on anything to include values

      Thanks anyway - I learned something new which is always a good thing

      Cheers - L~R

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://289490]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (2)
As of 2024-06-15 21:10 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.