Problème déclaration de variable dans un package
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:
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:
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 ????