> > I'm learning as best I can using every book orielly makes. I am
> > trying to saved a complex data structure (hash). I'm trying to use
> > Berkly DBFile and tie. I am unable to store the file ie
> retrieve info
> > once I have exited the program. Once I tie a hash toe the file
> > access the contents should be the same as accessing the contents of
> > the hash
>
> What have you done so far? If you had posted your code or a
> snippet of it
> we can help you better. Here is a small example.
I added a snippet below.
################### CODE SNIPPET ###################
sub db_write {
my (
%COMPANY_DB,
%COMPANY_DBT);
# connecting hash to data file - note this routine is to be improved
at a later date
#############################################
tie (%COMPANY_DB,'MLDBM','studio3.db',O_RDWR|O_CREAT,0777,$DB_BTREE)
|| die $!;
#############################################
# derive neccessary update location
############################################
my ($option)=$_[0];
my ($hash_no)=$_[1];
my ($hash_info)=$_[2];
my $name;
print "debug \n sub db_write recieved option $option\n";
if ($option == 1) {
$COMPANY_DB{employee} ->[$hash_no] = $hash_info;
$name= $COMPANY_DB{employee} -> [$hash_no] -> {info} -> [0] ->
{first};
print "debug\n" . $COMPANY_DB{employee} -> [$hash_no] -> {info}
-> [0] -> {first} . "\n";
print "you updated $name" . "'s info.\n";
}
You might
> also want to
> take a look at flock (perldoc -f flock).
>
> #!/usr/local/bin/perl -w
> use strict;
> use DB_File;
>
> my ($tiedb, %tied_hash);
> $tiedb = tie (%tied_hash, 'DB_File', 'tie_example.db',
> O_CREAT|O_RDWR, 0666) or
> die "dbcreat tie_example.db failed : $!\n";
> # Once you exit from the program you will have to tie again
> to access the
> # values. My guess is you are not doing this.
>
> foreach (keys (%tied_hash)) {
> print "$_ ---> $tied_hash{$_}\n";
> }
>
> while (<STDIN>) {
> chomp;
> $tied_hash{$_} = $_;
> }
> $tiedb->sync;
> undef ($tiedb);
> untie ($tiedb);
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]