Next | Lightweight Databases | 85 |
We can also build multiple indices:
open PASSWD, "<", "/etc/passwd" or die $!; tie %by_name, 'DB_File', "./pw_aux", O_CREAT|O_RDWR, 0666 or die $!; tie %by_uid, 'DB_File', "./pw_uid", O_CREAT|O_RDWR, 0666 or die $!;
make_index(\*PASSWD, \%by_name, sub { (split /:/, $_[0], 2)[0] }, );
make_index(\*PASSWD, \%by_uid, sub { (split /:/, $_[0], 3)[1] }, );
print find(\*PASSWD, \%by_name, 'mjd'); print find(\*PASSWD, \%by_uid, 119);
(All this also works with untied hashes)
Next | Copyright © 2003 M. J. Dominus |