Я удалил все и создал новый репозиторий. Кажется, сейчас работает. Не знаю, в чем проблема, но, по крайней мере, она работает ..
Можно просто удалить файл:
unlink $file;
Так как Вашим третьим аргументом dbmopen является режим файла и нет undef
, dbmopen
воссоздаст файл в следующий раз, когда это называют:
dbmopen my %db, $file, 0666;
На самом деле коллега указал на меня на решение. Можно, по-видимому, сделать:
dbmopen (%db,"file.db",0666);
%db = ();
dbmclose (%db);
который убирает хеш прежде, чем закрыть базу данных.
Был другой ответ здесь, который исчез по некоторым причинам, все же это, вероятно, будет быстрее, таким образом, я повторно отправляю его (не уверенный, почему это было удалено). Это включает удаление связи с файлом для удаления его затем просто воссоздание пустого файла базы данных следующим образом:
unlink ("file.db");
dbmopen (%db,"file.db",0666);
dbmclose (%db);