Renvoyer résultat dans un fichier PERL

Fermé
ing888 - Modifié le 15 avril 2017 à 18:31
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 18 avril 2017 à 09:46
Bonjour,
j'ai un code perl qui lit 2 fichier un dictionnaire de la forme
1 voiture
2 maison
..

et un autre fichier séquence de la forme

1 2
2 2
..

mon code fait la correspondance des chiffres de fichier sequence avec les mots du fichier dictionnaire
donc j'ai comme resultat ca

voiture maison
maison maison
...
#!/usr/bin/env perl
use strict;
use warnings;
use autodie;

open (my $fh, "<", "dict_FR.txt" );
my %hash;
while (<$fh> ) {
if (/^\s*(\d+)\s+(.*\S)\s*$/) {
$hash{$1}=$2;
}
}
close $fh;



# maintenant %hash est un dictionnaire, de clés les codes numériques, et valeurs les mots associés.
open ($fh, "<", "seq_corpus.txt" );
while (<$fh> ) {
if (/^\s*((\d+)\s+)*\d+\s*$/ ) {

my @line = split(/\s+/, $_);

foreach (@line) {

print $hash{$_}, " ";




print "\n";
}
}
close $fh;



mon probleme que je veux stocker le resultat dans un nouveau fichier ..
qui peut m'aider ????



A voir également:

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
18 avril 2017 à 09:46
Salut ing888,

Tu fais simplement ton open avec ">" (pour écrire en écrasant le contenu éventuel d'un fichier existant) au lieu de "<" (pour lire)

https://perldoc.perl.org/functions/open

ensuite, tu utilises le filehandle avec tes print pour y écrire et tu fermes ton filehandle avec close. Tu as un exemple complet, avec des explications très didactiques là :

https://perlmaven.com/writing-to-files-with-perl


Dal
0