à l'aide parser un fichier avec perl

Fermé
Signaler
-
Bonjour, je suis un débutant en perl, je cherche à parser un fichier.
J'ai essayer de me débrouiller mais y a toujours un message d'erreur qui apparait je sais qu'il y a des soucis sur mon code mais je peux pas le réparer.
Quelqu'un pourait m'aider si possible?
Merci

L'idée est de parser le fichier de recuperer des informations contenu dans chaque paragraphe ( les paragraphes commenc par'>' ).

-Je dois recupereer le mots qui viens tout juste aprés le '>' que j'ai appelé. (my $gene_bm {"GENE_ID"})
-Je dois aussi récupérer des information sur toutes les lignes commençant par bm.

#!/bin/perl -w

use Bio::SeqIO;
use strict; use warnings;

my %gene_AST = ();
my %BM_AST = ();
my $gene_AST {"GENE_ID"} = ();
my $gene_AST {"CHROMOSOME_ID"} = ();
my $gene_AST {"Nombre_de_poly_a"} = ();
my $polyA_AST {"Gene_ASTD_id"} = ();
my $BM_AST {"Poly_A_start_site"} =();
my $BM_AST {"Polya_end_site"} =();
my $file = "/home/Bureau/stage_b/perl/NCBI/chlor.fasta";


open (AST, "<$file");
print $file. "\n";

while (my $file = AST){

print $file. "\n";
}


foreach $line = (@line){

#je recupere le nom , "/CLF........../" qui suit '>') et je le met dans ma table (@gene_AST);

if ($line =~ /(>CLF..........)/){
print IN $gene_AST {"GENE_ID"} . "\n";


}


if ($line =~ /(BM_SITE)/){

$line = @BM; #Je considére ma ligne comme une liste @BM dont je recupere les éléments $BM[8] et $BM[9].

#my $BM_AST = #est un compteur
my $BM[2] = $BM_AST {"BM_start_site"} ;
my $BM[9] = $BM_AST {"BM_end_site"} ;
my $gene_AST {"Nombre_de_BM"} = # nombre de @BM obtenu à chaque tour de boucle.

print IN $gene_AST {"CHROMOSOME_ID"} . "\n";
print IN $BM_AST {"BM_start_site"} . "\n";
print IN $BM_AST {"BM_end_site"} . "\n";

}


}

close (AST);

Merci d'avance