Stocker et lire de hachage et de la matrice dans les fichiers en Perl
Je suis un noob.J'ai besoin de quelques connaissances de base sur la façon dont les données doivent être enregistrées et lues sous perl. Dire pour enregistrer une table de hachage et un tableau. Ce format (extension) du fichier doit être utilisé? txt? Jusqu'à présent, je ne peut enregistrer toutes les choses que comme une chaîne de caractèresprint FILE %hash
et les lire comme une chaîne de caractèresprint <FILE>
. Que dois-je faire si j'ai besoin de ma fonction de hachage et un tableau en entrée à partir d'un fichier. Comment les mettre de hachage et de tableau?
- Vous pouvez consulter des modules tels que Stockables ou Data::Dumper.
- Data::Dumper devrait vous aider à stocker un tableau/hachages comme il est. Vous pouvez ré-utiliser par l'intermédiaire de require/eval
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour les données de la sérialisation. Les choix populaires qui sont robustes sont Sereal, JSON::XS et YAML::XS. Moins connus sont les formats: L'ASN.1, Avro, BERT, BFILS, DDDC, JSYNC, MessagePack, Protocol Buffers, L'épargne.
Autres souvent mentionnés sont les choix Stockables et Data::Dumper (ou similaire)/
eval
, mais je ne les recommande parce que Stockables format est dépendant de la version de Perl, eteval
est dangereux parce qu'il exécute du code arbitraire. En 2012, l'analyse de la contre-partie Data::Undump n'a pas progressé très loin encore. Je ne peux pas recommander l'utilisation de XML, car il n'a pas la carte Perl types de données, et il existe plusieurs concurrents/incompatible schémas comment traduire entre XML et des données.Exemples de Code (testé):
La prochaine étape d'ici est la persistance d'objet.
Lire aussi: Sérialiseurs pour Perl: quand utiliser quoi
Perlmonks a deux bonnes discussions sur la sérialisation.
Cela dépend vraiment de la façon dont vous souhaitez stocker vos données dans votre fichier. Je vais essayer d'écrire quelques notions de code perl pour vous permettre de lire un fichier dans un tableau et d'écrire ou de retour d'un hachage dans un fichier.
Si vous avez des nouvelles je vous suggère de faire de chaîne à partir de la matrice de/hachage avec join() et qu'ils l'écrivent avec "imprimer", puis lire et utiliser la fonction split() pour faire de tableau/hachage de nouveau. Ce serait plus simple comme Perl enseignement de texte exemple de carnet.