Wie kann ich eine Perl DBM-Datei effizient leeren?

7

Ich habe ein Stück Code mit einem Ausschnitt geerbt, der die Datenbank wie folgt leert:

%Vor%

Dies ist normalerweise in Ordnung, aber manchmal wird die Datenbank sehr groß, bevor dieser Bereinigungscode aufgerufen wird, und es ist normalerweise, wenn ein Benutzer etwas Wichtiges tun möchte.

Gibt es einen besseren Weg, dies zu tun?

    
paxdiablo 13.10.2008, 04:42
quelle

3 Antworten

10

Sie können die Datei einfach löschen:

%Vor%

Da Ihr drittes Argument für dbmopen ein Dateimodus ist und nicht undef , wird dbmopen neu erstellt die Datei beim nächsten Aufruf:

%Vor%     
brian d foy 13.10.2008, 14:10
quelle
6

Eigentlich hat mich ein Arbeitskollege auf eine Lösung hingewiesen. Sie können anscheinend tun:

%Vor%

löscht den Hash vor dem Schließen der Datenbank.

    
paxdiablo 13.10.2008 05:58
quelle
6

Es gab eine andere Antwort hier, die aus irgendeinem Grund verschwunden ist, aber es war wahrscheinlich schneller, also übertrage ich es (nicht sicher, warum es gelöscht wurde). Sie müssen die Verknüpfung der Datei aufheben, um sie zu löschen, und dann einfach eine leere Datenbankdatei neu erstellen:

%Vor%     
paxdiablo 13.10.2008 06:50
quelle

Tags und Links