J'ai un petit soucis.
Je cherche à compléter un hash composé d'un array de clef qui pointe vers des valeurs. (en gros, c'est des macro #define C qui pointe vers le nom de fichier de définition de la macro en question )
open H, "<$dir/$file" || die "$!";<br />
<br />
@tmp= ;<br />
@tmp= grep { s/\#define //} @tmp; # keep only #define lines<br />
@tmp= map { /(^\S+)\s.*/} @tmp; # keep only keys not value<br />
@$data{@tmp} = ($file) x @tmp;<br />
<br />
close H;<br />
<br />
L'intérêt est de pouvoir faire des grep sur les "keys" et d'utiliser la clef pour pouvoir faire le bon include automatiquement.<br />
<br />
Maintenant cela se corse, j'ai besoin de la valeur à coté du nom de fichier à inclure.<br />
@value = map { /^\S+\s+(\S[\s\S]*\S).*$/ } @tmp;
Je cherche maintenant à avoir un hash qui pointe sur un array de taille 2 qui contient le nom du fichier et la valeur.
J'ai tenté un
@$data{@tmp} = [($file) x @tmp,@value];
sans succès !
Les perfs sont importantes @$data fait 100 000 lignes.
Vous avez une idée ?
# en fait, c'est simple
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
@$data{@tmp} = map { [$file, $_] } @tmp;
"La première sécurité est la liberté"
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.