Antonio Gulli wrote:

> Dear All, 
> i hope that someone can help me.
> I have a large list of DB_Files stored in a directory. I would like to
> tie all of them to an array of hashes and to search them for key,
> using the hashes.
> 
> My idea is rather simple:
> 
> my (@listOfHashes);
> my ($numOfHashes);
> 
> sub loadDBs{
> 
>     my ($dbDIR) = @_;
>     my ($numFiles) = 0;
>     my ($b) = new DB_File::BTREEINFO;
>     my ($file);
> 
>     $numOfHashes = 0;
> 
>     opendir(DIR, $dbDIR) || die "cannot opendir $dbDIR: $!";
>     while (defined($file = readdir(DIR))){
>  
>        if ($file =~ /db\.*/){
>           tie %{ $listOfHashes[$numOfHashes] }, "DB_File", $file, 

You might try :  "$dbDIR/$file" instead of $file to pick up the full
path to the file.

>             O_RDONLY, 0666, $b
>           || die ("Cannot open $file");
>           $numOfHashes++;
>           print "Tied $file $numOfHashes\n";
>        }
>     }
> }
> 
> sub dumpAll_Key_Value{
>     
>     my ($key, $value);
>     for (my $i = 0; $i < $numOfHashes; $i++){
>       print "Load $i";
>       while (($key, $value) = keys %{ $listOfHashes[$i] }){
>         print ">$key< >$value<\n";
>        }
>     }
> }
> 
> sub searchKey{
> 
>     my ($key) = @_;
>     my ($fetched);
>     for (my $i = 0; $i < $numOfHashes; $i++){
>       if (defined ($fetched = $listOfHashes[$i]{$key})){
>         print "found $key on $i DB";
>         return $fetched;
>       }
>     } 
>   return undef;
> }
> 
> But neither searchKey() nor dumAll_Key_Value() seems to work,
> while loadDBs() seems to tie the hashes...
> 
> Am i doing a trivial error or what? Any suggestion?

You could also try dumping listOfHashes using Data::Dumper and
see what you get.

-- 
  ,-/-  __      _  _         $Bill Luebkert    Mailto:[EMAIL PROTECTED]
 (_/   /  )    // //       DBE Collectibles    Mailto:[EMAIL PROTECTED]
  / ) /--<  o // //      Castle of Medieval Myth & Magic http://www.todbe.com/
-/-' /___/_<_</_</_    http://dbecoll.tripod.com/ (My Perl/Lakers stuff)

_______________________________________________
Perl-Unix-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to