Bonjour,
Je suis débutant en Perl et je dois gerer la mise en forme d'un fichier texte en recuperant des infos dans un autre fichiers. J'essaie d'utiliser en vain des references et j'avoue que ma compréhension du fonctionnement est loin d'etre acquise. Bref j'ai tout de meme ecrit du code qui fait la moitié du travail et je vais essayer d'expliquer ce que je fais :
@ligne_out[N] contenant "PARAMETRE_N $_paramN" est un tableau qui represente les lignes que je vais recopier dans le fichier mis en forme. Je cherche a ce que quand je recupere $_paramN dans le fichier source non mis en forme cela soit changé directement dans ce que contient @ligne_out[N].
$param1 = \$_param1; #j 'essaie d'utiliser les references
$param2 = \$_param2;
$param3 = \$_param3;
........
@ligne_out[1] = "PARAMETRE_1 $_param1";# chaque ligne du fichier de sortie avec le nom du paramètre ajouté avant la valeur de celui ci
@ligne_out[2] = "PARAMETRE_2 $_param2";
@ligne_out[3] = "PARAMETRE_3 $_param3";
open (FIN, fichier_in.txt);
$ligne_fic_entre = 0;
#je recupere chaque du fichier ne comportant que les valeurs
while ($line = <FIN>)
{
if ($ligne_fic_entre == 1)
{
$param1 = $line;
#je fais un print pour voir si la valeur du paramètre à changée dans @ligne_out[]
print <STDOUT>, "1ere ligne OK ? @ligne_out[1] fin\n\n";
}
if ($ligne_fic_entre == 2)
{
$param2 = $line;
print <STDOUT>, "2eme ligne OK ? @ligne_out[2] fin\n\n";
}
...........
$ligne_fic_entre++
}
En gros cela affiche tres bien
PARAM1
PARAM2
.....
mais pas
PARAM1 valeur de param1
PARAM2 valeur de param2
.....
En plus de cela j'aurai bien aimé integrer qqchose du type
@param[$ligne_fic_entre] = $line;
print <STDOUT>, "$ligne_fic_entre eme ligne OK ? @ligne_out[$ligne_fic_entre] fin\n\n";
pour eviter tous ces if pour chaque ligne
Voici donc mon souci tres clairement j'ai besoin d'un bon conseil sur ce point, en attendant vos suggestions je me replonge dans la doc du perl !
Merci d'avance
Partager