Schon wieder fast N'Abend!
Sobald ich einen Datensatz geschrieben habe, wird, wenn ich den nächsten schreiben will, immer der komplette erste Datensatz überschrieben.
Ich kann also immer nur einen Datensatz speichern. :-(
Mein erstes Posting war ja voller Fehler (ich hahtte das nur so dahin gehackt), du hast das nicht so übernommmen?
Ne ne, ich habe nicht Dein Beispiel verwendet, sondern die, die in der manpage zu DB_File waren.
Und da war es dann so, dass ich zwar einen Datensatz speichern konnte (in einer 12 kB - Datei für 200 Zeichen Text), aber wenn ich dann einen Datensatz anhängen wollte, wurde der erste komplett überschrieben.
Wie sieht denn dein Code aus, der nicht funktioniert?
Moment, ich muss mal kurz man DB_File aufrufen...
use warnings ;
use strict ;
use DB_File ;
use vars qw( %h $k $v ) ;
unlink "fruit" ;
tie %h, "DB_File", "fruit", O_RDWR|O_CREAT, 0640, $DB_HASH or die "Cannot open file 'fruit': $!\n";
Add a few key/value pairs to the file
$h{"apple"} = "red" ;
$h{"orange"} = "orange" ;
$h{"banana"} = "yellow" ;
$h{"tomato"} = "red" ;
Check for existence of a key
print "Banana Exists\n\n" if $h{"banana"} ;
Delete a key/value pair.
delete $h{"apple"} ;
print the contents of the file
while (($k, $v) = each %h)
{ print "$k -> $v\n" }
untie %h ;
Das hat auch soweit funktioniert. Aber wenn ich dann erneut die Datenbank aufmachen will und neue Daten speichern will, habe ich die alten verloren.
Grüße
Andreas