Bonjour,
je suis débutant en Perl et voila mon problème, je souhaiterais ouvrir plusieurs fichiers, récupérer des infos dans ces fichiers et ensuite les réécrire dans un nouveau fichier.
Le problème c'est que je n'arrive pas à ouvrir plusieurs fichiers
la console me renvoie cette erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 use strict; use warnings; use Data::Dumper; system("ls /read_count/*out.tab > /read_count/liste_fichier.tmp"); my $n=0; my $i=0; my $f_filen="f_star".$n; ## le problème vient d'ici... my $rep="/read_count/ADNc[0-9]_ReadsPerGene-4.out.tab"; my $rep_liste_f="/read_count/liste_fichier.tmp"; print($f_filen."\n"); open liste_f, $rep_liste_f or die "Impossible d'ouvrir le fichier liste_f, $!"; open f_new, "> /read_count/cat_read_count.txt" or die "Impossible d'ouvrir le fichier f_new, $!"; while (my $file = <liste_f>) { $n+=1; open $f_filen, $file or die "Impossible d'ouvrir le fichier $f_filen, $!"; } my @col_star; my @col_all; my $add; while ($i < $n) { while (defined(my $line_star = <$f_filen>)) { @col_star = split(/\t/,$line_star); ## $add = $col_star[2] + $col_star[3]; push(@col_all,$add); ## print f_new $col_rsem[4] . "\t" . $col_star[2] . "\t" . $col_star[3] . "\t" . $add . "\n" ; } } print f_new @col_all; foreach my $file ($rep) { close f_star; } system("rm /read_count/liste_fichier.tmp"); close f_new;
je pense que c'est la mauvaise initialisation de ma valeur qui pose problème..., mais je n'ai pas réussi à trouver de solution sur internet...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Can't use string ("f_star0") as a symbol ref while "strict refs" in use at cat_tab_star.pl line 26, <liste_f> line 1.
Le but final de mon script étant de récupérer les colonnes 3 et 4 de mes fichiers de les additionner et des les réécrire dans un nouveau fichier....
(Il y a surement encore beaucoup d'erreurs mais je m'en occuperai plus tard).
Merci pour votre aide !
Bonne soirée
Partager