Sauvegarder une table de hachage en fichier
Le
Bruno Ethvignot
Bonjour,
Quel est la meilleur méthode pour sauvegarder une table de hachage
dans un fichier, et pouvoir plus tard relire ce fichier dans
une table de hachage (avec la même structure de données bien entendu) ?
J'ai cru que comprendre que le module Data::Dumper pourrait-être
utilisé, mais je n'arrive pas à relire le fichier dans une table
de hachage.
Peut-être que l'utilisation de fichiers db serait une meilleure
solution ? Bien ma table de hachage contient elle même d'autres
tables.
Merci pour toute aide
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php
Quel est la meilleur méthode pour sauvegarder une table de hachage
dans un fichier, et pouvoir plus tard relire ce fichier dans
une table de hachage (avec la même structure de données bien entendu) ?
J'ai cru que comprendre que le module Data::Dumper pourrait-être
utilisé, mais je n'arrive pas à relire le fichier dans une table
de hachage.
Peut-être que l'utilisation de fichiers db serait une meilleure
solution ? Bien ma table de hachage contient elle même d'autres
tables.
Merci pour toute aide
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php

Poser une question


Finalement j'ai trouvé, y fallait jute initialiser trois
petites variables du module Data::Dumper
L'écriture :
#!/usr/bin/perl
use strict;
use Data::Dumper;
$Data::Dumper::Purity = 1;
$Data::Dumper::Indent = 0;
$Data::Dumper::Terse = 1;
if (open (FICHIER, '>'.$fichier)) {
print FICHIER Dumper ($mon_hash);
close FICHIER;
}
La lecture :
#!/usr/bin/perl
use strict;
use File::stat;
use IO::File;
use Data::Dumper;
my $fichier = lecture ($nom_fichier);
my $mon_hash = eval ($fichier);
print $mon_hash->{clef1}->{clef2}->{clef3};
sub lecture {
my ($fichier) = @_;
my ($st, $content, $content_length);
$content_length = 0;
$st = stat ($fichier);
next unless (defined ($st));
open (F, $fichier);
sysread F, $content, $st->size, $content_length;
close (F);
$content_length += $st->size;
return $content;
}
A+
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php
Bruno Ethvignot wrote:
Data::Dumper permet de serialiser une structure perl. pour la
deserialiser/relire il faut utiliser "$var = do fichier" ou faire un
"eval" de la chaine.
Padkoa,
.s'nuoM
use Storable; #module disponible dans toutes les bonnes crèmeries
%s= %{ retrieve("$dir/seen.dat") }; #pour charger un fichier
store(%s, "$dir/seen.dat"); #pour enregistrer
Yapaplusimple ©
--
Existe-t-il un numéro vert où ceux qui débuttent sur les forums du web
peuvent poser des questions ? Ce forum de conseils est très bien, mais
il serait bon de pouvoir discuter de vive voix avec des conaisseurs.
-+-Le
On peut utiliser le module Storable également. Le fichier produit est
binaire.
Merci c'est *exactement* ce qu'il me fallait :-)
Yapaplusimple et en plus ça à l'air plus optimisé que Data::Dumper !
(merci également à Rafael qui m'a aussi orienté vers le module Storable)
Bonne nuit
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php