Speichern und Lesen, hash und array in Dateien in Perl
Ich bin ein noob.Ich brauche einige grundlegende Kenntnisse darüber, wie die Daten gespeichert werden sollen, und Lesen Sie unter perl. Sagen speichern Sie ein hash und ein array. Welches format (Endung) der Datei verwendet werden soll? txt? Bisher kann ich nur speichern Sie alle Dinge, die als stringprint FILE %hash
und Lesen Sie diese wieder als stringprint <FILE>
. Was soll ich tun, wenn ich meine Funktion hash-und array-Eingaben aus einer Datei. Wie setzen Sie diese wieder ein hash und array?
- Sie können überprüfen, werden solche Module als " Lagerbar oder Data::Dumper.
- Data::Dumper soll Ihnen helfen, die Speicher-Arrays/hashes, wie es ist. Sie können wieder zu verwenden, Sie über verlangen/eval
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst Daten serialisieren. Populäre Wahlen, die robust sind Sereal, JSON::XS und YAML::XS. Weniger bekannte Formate sind: ASN.1, Avro, BERT, BSON, CBOR, JSYNC, MessagePack, Protocol Buffers, Sparsamkeit.
Anderen oft genannten Entscheidungen sind Lagerfähig und Data::Dumper (oder ähnlich)/
eval
, aber empfehlen kann ich Sie, weil Speicherbare format ist die Perl-version abhängig, undeval
ist unsicher, da Sie es führt von beliebigem code. Als 2012 die parsing-Zähler-Teil Daten::Undump noch nicht sehr weit Fortgeschritten ist, noch. Ich kann auch nicht empfehlen die Verwendung von XML, weil es nicht anzeigen Perl-Datentypen gut, und es gibt mehrere konkurrierende/inkompatible Schemata, wie Sie übersetzen zwischen XML-und Daten.Code-Beispiele (getestet):
Den nächsten Schritt von hier ist object persistence.
Lesen Sie auch: Serialisierungsprogramme für Perl: Wann verwendet man was
Perlmonks hat zwei gute Gespräche, die bei der Serialisierung.
Diese wirklich hängt davon ab, wie Sie möchten, speichern Sie die Daten in Ihrer Datei. Ich werde versuchen, schriftlich einige grundlegende perl-code zu aktivieren, Sie zu Lesen, eine Datei in ein array und oder zurück schreiben einen hash in einer Datei.
Wenn Sie neue ich nur empfehlen, machen string array/hash mit join() und schreiben Sie es mit "drucken" und dann Lesen Sie und benutzen Sie die split() um ein array/hash wieder. Das wäre mehr einfachen Weise, wie Perl Lehr-text-Buch-Beispiel.