Bonjour,
J'ai une fonction qui appartien à un package:
J'ai une erreur de déclaration de variable au niveau de $keys.
Voici ma fonction:
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
44
45
46
47
48
49 package TX2::BD; ... ..... ........ sub GetTotalMessages($_) { my $address=$_[0]; my $month=$_[1]; my @messages; my $date1.='01'; my $date2.='31'; my %trrcvdoc=(ADDRESS=>'ADDRESSE_EMETTEUR',DATE=>'DATE_RECEPTION_DOC'); my %trsnddoc=(ADDRESS=>'ADDRESSE_RECEPTEUR',DATE=>'DATE_ENVOI_DOC'); my %tables=(trrcvdoc=>\%trrcvdoc,trsnddoc=>\%trsnddoc); foreach my $keys (keys %tables) { my $requete="SELECT COUNT(*) FROM $keys "; if($address ne '*') { $requete.="WHERE $tables{$keys{'ADDRESS'}}=\'$address\' "; if($month ne '*') { $requete.="AND $tables{$keys{'DATE'}}>=\'$date2\' AND $tables{$keys{'DATE'}}<=\'$date2\'"; } } else { if($month ne '*') { $requete.="WHERE $tables{$keys{'DATE'}}>=\'$date2\' AND $tables{$keys{'DATE'}}<=\'$date2\'"; } } my $dbi=&TX2::Tools::Connexion(); my $req=$dbi->prepare($requete); $req->execute(); my @res=$req->fetchrow_array(); push(@messages,$res[0]); &TX2::Tools::Deconnexion($dbi); } return \@messages; }
Et voici une partie de l'erreur retournée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Tue Aug 23 14:00:40 2005] [error] [client 127.0.0.1] Global symbol "%keys" requires explicit package name at c:/Perl/lib/TX2/BD.pm line 329.\n [Tue Aug 23 14:00:40 2005] [error] [client 127.0.0.1] Global symbol "%keys" requires explicit package name at c:/Perl/lib/TX2/BD.pm line 333.\n [Tue Aug 23 14:00:40 2005] [error] [client 127.0.0.1] Global symbol "%keys" requires explicit package name at c:/Perl/lib/TX2/BD.pm line 333.\n [Tue Aug 23 14:00:40 2005] [error] [client 127.0.0.1] Global symbol "%keys" requires explicit package name at c:/Perl/lib/TX2/BD.pm line 340.\n
Pouvez vous me dire ce qu'il ne va pas s'il vous plait ????
Partager