Wie kann ich den Fall eines Hash-Schlüssels ändern?

7

Ich schreibe ein Skript, das wahrscheinlich von Benutzern geändert wird. Momentan speichere ich die Konfigurationseinstellungen im Skript. Es existiert in Form eines Hash-of-Hashes.

Ich möchte mich vor Personen schützen, die versehentlich Kleinbuchstaben in den Hash-Schlüsseln verwenden, da dies mein Skript zerstören wird.

Es wäre einfach, die Hash-Schlüssel zu untersuchen und nur Warnungen für Schlüssel mit Kleinbuchstaben auszugeben, aber ich würde lieber die Groß- / Kleinschreibung automatisch korrigieren.

Mit anderen Worten, ich möchte alle Hash-Schlüssel im Hash der obersten Ebene in Großbuchstaben konvertieren.

    
mseery 21.11.2008, 20:37
quelle

3 Antworten

13

Andys Antwort ist eine gute Antwort, außer er uc s jeden Schlüssel, und dann uc s es wieder, wenn es nicht übereinstimmt.

Dieser uc s einmal:

%Vor%

Aber da Sie von Benutzern gesprochen haben, die Schlüssel speichern , ist eine Bindung viel sicherer, auch wenn sie langsamer ist.

%Vor%

Und dann in main:

%Vor%

Das ist eine Show. Das tie "magic" kapselt es ein, so dass die Benutzer es nicht unwissentlich durcheinander bringen können.

Natürlich können Sie, solange Sie eine "Klasse" verwenden, den Namen der Konfigurationsdatei übergeben und von dort initialisieren:

%Vor%

Wo würden Sie es wie:

nennen %Vor%

... unter Annahme einer konstanten CONFIG_FILE_PATH .

    
Axeman 21.11.2008, 21:49
quelle
13

Gehen Sie durch den Hash und ersetzen Sie alle Kleinbuchstaben mit ihren Großbuchstaben und löschen Sie die alten. Ungefähr:

%Vor%     
Andy Lester 21.11.2008 20:43
quelle
0

Dies konvertiert Multi-Level-Hash in Kleinbuchstaben

%Vor%     
xxnations 31.03.2017 21:10
quelle

Tags und Links