Salut à tous, j'ai besoin de l'aide pour calculer certaines variables qui sont dans mon fichier.

voici mon code:
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
sub ReadDsc() {
#while (my ($k, $v)=each (%dscdir))
#{
#print "dsc: $v\n";}
 
my ( $s_dir, $s_dsc, $s_project);
my ( $s_var, $s_block, $s_id, $s_code, $s_label, $s_tp0,$s_video, $s_audio, $s_image,$s_anim) ;    # Pour chaque DSC
my ($NP, $NSTOP, $NQ, $VIDEO, $AUDIO, $IMAGE, $ANIMATION) = (0,0,0,0,0,0,0);
 
foreach $s_project ( keys %dscdir ) {
                $s_dsc=$dscdir{$s_project}; #chemin complet du dsc
                #print "$s_dsc\n"; #test
                open (FHifile,"<$s_dsc" ) || &MyError( __LINE__, $!, "Can not open input file $s_dsc" );
                while(defined( my $l = <FHifile> ) )
                {
                   next if (/^\/\//);
                   chomp $l;
                   if(/^\s* NEWPAGE/) { $NP +=1;}
                   elsif (/^\s*STOP/) { $NSTOP +=1;}
                   elsif (/^\s*ASK/)  { $NQ +=1;}
                   elsif (/\@FLV/)    { $VIDEO +=1;}
                   elsif (/\@MP3/)    { $AUDIO +=1;}
                   elsif (/\@IMG/)    { $IMAGE +=1;}
                   elsif (/\@SWF/)    { $ANIMATION +=1;}
                }
                close (FHidir);
                push my @dscinfo, $NP, $NSTOP, $NQ, $VIDEO, $AUDIO, $IMAGE, $ANIMATION;
                ${$dscinfo{$s_project}} = [@dscinfo];
 
}
 
}
je veux parcourir mon s_dsc ligne par ligne et passer a la ligne suivante si la courante commence par un //, compter le le nombre de ligne commençant par exemple par NEWPAGE, ASK,..., mettre toutes ces valeurs dans @dscinfo, et mettre @dscinfo dans %dscinfo (contient les @dscinfo de tous les s_dsc).
Mais en executant le script j'ai ces erreurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Use of uninitialized value $_ in pattern match (m//) at script.pl 
	<FHifile> line 619 (#4)
merci pour votre coup de pousse.