Il est possible de simplifier largement ton traitement (au vu de ton énoncé) en n'utilisant qu'un seul hash contenant toutes les informations dont tu as besoin :
#!/usr/bin/perl#Tables de hash contenant en clé la référence et en valeur la ligne à afficher%lignes_a_afficher=();#Ouverture des fichiers, tue le script en cas d'echecopen(FILE,"fichier_1.txt")ordie;open(FILE2,"fichier_comp")ordie;#Chargement des references et des lignes à afficher dans le hash à partir du premier fichierwhile(<FILE>){chomp();@ligne=split(/;/,$_);$lignes_a_afficher{$ligne[7]}=$_;}close(FILE);#Vérification de la présence de la ref dans le second fichier, si elle est présente on l'enlève des lignes à afficherwhile(<FILE2>){chomp();@ligne2=split(/;/,$_);if(exists$lignes_a_afficher{$ligne2[7]}){delete$lignes_a_afficher{$ligne2[7]};}}close(FILE2);#Affichage foreachmy$ligne_a_afficher(values(%lignes_a_afficher)){print$ligne_a_afficher."\n";}
[^] # Re: table de hachage
Posté par Chris K. . En réponse au message Traitement de gros fichier. Évalué à 3. Dernière modification le 25 mars 2015 à 16:01.
C'est un bon début :)
Il est possible de simplifier largement ton traitement (au vu de ton énoncé) en n'utilisant qu'un seul hash contenant toutes les informations dont tu as besoin :