Selon le dbmopen-docu, cette fonction a été largement remplacée par la fonction "tie". Je connais le module Tie :: File qui accède aux lignes d'un fichier disque via un tableau Perl. Comment le ferais-je si je n'ai pas besoin d'un tableau mais d'un hachage?Meilleure façon d'écrire un hachage dans un fichier
Répondre
Vous pouvez utiliser Storable:
use Storable;
store \%hash, 'file';
my $hashref = retrieve('file');
ou si vous avez besoin de stocker plus de données puis BerkeleyDB:
use BerkeleyDB;
use MLDBM qw(BerkeleyDB::Hash) ;
use Storable;
my $env = BerkeleyDB::Env->new(-Home => $home);
tie %store, 'MLDBM', -env => $env;
$store{my_stored_hash} = \%hash;
Le lien "use Storable" est cassé. Les gens de Perl l'ont changé: http://perldoc.perl.org/Storable.html – con
Pour écrire un hachage fichier:
open(OUT,">myFile.txt");
foreach my $key (sort keys %hash) {
print OUT $key.",".$hash{$key}."\n";
}
close(OUT);
Veuillez ne pas utiliser les poignées de fichiers bareword, jamais. Ils constituent un risque pour la sécurité et la stabilité de votre logiciel et leur diffusion aux débutants diminue la qualité de perl partout. J'inverserai mon vote une fois que vous aurez fait la modification pour utiliser les descripteurs de fichiers scalaires à la place. – Mithaldu
Ce qui fonctionne bien jusqu'à ce qu'une de vos clés ait une virgule dedans. Et il est généralement inutile de trier le hash - il suffit d'utiliser chacun sauf si cela compte vraiment. – Porculus
@Mithaldu, je ne vais pas changer de code. Si vous êtes en train de concevoir une centrale nucléaire d'une importance vitale (peu probable que vous utilisiez Perl car cela dépend totalement d'un gars, un passionné très talentueux), je peux voir ce que vous voulez dire. Si vous écrivez un morceau de Perl, pour faire un travail le plus rapidement possible, je ne vois pas quel est le problème. Quoi qu'il en soit, je n'ai jamais prétendu donner une réponse complète - juste un indicateur sur la façon dont on pourrait faire quelque chose. Par conséquent, vous êtes neg rep est pathétique. Je vous mets au défi de fournir une meilleure réponse. – Eamorr
Regardez le module standard AnyDBM_File et les autres documents auxquels il fait référence, pour quelques exemples d'utilisation tie
au lieu de dbmopen
.
Le SDBM_File-module de base pourrait attacher un hachage dans un fichier:
use Fcntl;
use SDBM_File;
tie(%h, 'SDBM_File', 'filename', O_RDWR|O_CREAT, 0666) or die $!;
...
...
untie %h;
Mais: "... la longueur d'une clé, plus la longueur de son associat ed, ne doit pas dépasser 1008 octets. "
- 1. Une meilleure façon de décrire CRUD dans une application web?
- 2. Quelle est la meilleure façon de copier en profondeur un hachage de hachage en Perl?
- 3. Meilleure façon de reconnaître un type de fichier dans php
- 4. Meilleure façon d'analyser un fichier dans Objective-c
- 5. Quelle est la meilleure façon d'écrire dans un fichier Ruby?
- 6. ce qui est la meilleure façon de convertir un hachage rubis à un tableau
- 7. Décrire un nouveau composant Joomla
- 8. Meilleure façon de désérialiser dans un tableau
- 9. Meilleure façon de lire et de traiter un fichier texte
- 10. Meilleure façon de conserver un fichier XML sur iPhone?
- 11. Quelle est la meilleure façon d'obtenir le hachage d'un QPixmap?
- 12. Meilleure façon de définir dynamiquement un chemin de fichier Appender
- 13. La meilleure façon d'analyser un fichier journal en C#
- 14. Quelle est la meilleure façon d'afficher un fichier long?
- 15. meilleure façon de copier un fichier Zip via Java
- 16. meilleure façon d'offrir une table de hachage statique C#
- 17. La meilleure façon de décrire les types de variables dans SQL
- 18. Comment charger un fichier dans un hachage Perl?
- 19. Meilleure façon d'afficher un «score élevé» Résultats
- 20. Décrire un chemin avec GDI + dans .Net
- 21. La meilleure façon d'épeler vérifier un plist?
- 22. Quelle est la meilleure façon d'écrire un tableau court [] dans un fichier en C#?
- 23. La meilleure façon de déterminer si un nom de domaine serait valide dans un fichier "hosts"?
- 24. Meilleure façon de gérer un 404 dans un gestionnaire HTTP de téléchargement de fichier?
- 25. Modification hachage dans un hachage en Perl
- 26. Quelle est la meilleure façon de télécharger un fichier externe sur un serveur via un programme
- 27. meilleure façon de convertir le fichier html dans un fichier xml en utilisant python
- 28. Comment décrire un UIElement en Partial-Trust?
- 29. Meilleure façon d'invoquer un code croisé?
- 30. meilleure façon de déployer un paquet
Cela dépend entièrement de ce que vous voulez réaliser et de la quantité de données stockées. Pouvez-vous ajouter d'autres informations? – Ether
Je serais une alternative à (le remplacé) dbmopen. Dans ce cas, ce n'est pas beaucoup de données. –
Par information, elle voulait dire: Quel genre d'information? Comment est-ce utilisé? Combien exactement? Y a-t-il des contraintes? – Mithaldu