Récuperer valeur d'une clé dans une fonction
bonjour tous le monde,
Je voudrais savoir commnent récupérer la valeur d'une clé provenant d'un hash (SpecRef) sachant que je suis dans une fonction :
voici mon code, enfin un morceau :
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 50
|
foreach $linekmtn (@$KMTN)
{
# -- One specie
if ($linekmtn =~ /^\s#(\d+)#\s(\d.+)\s\{(\w.+)\}/)
{
next unless exists ($SpecRef->{$1});
($specie1, $val, $compound) = ($1, $2, $3);
foreach $data (@$allfile)
{
chomp $data;
next unless ($data =~ m/^(\d+\.\d+\.\d+\.\d+)\t(\w.+)\t(\w.+)\tc\t/i);
next if $1 ne $numEC;
($valEC, $NameReact, $Equation) = ($1, $2, $3);
$da2 = $data;
$da2 =~ s/^\d+\.\d+\.\d+\.\d+\t\w.+\t\w.+\tc\t//gi;
foreach $ligne (split /;/, $da2)
{
($shortC,$nameC,$formulaC) = split (/\t/,$ligne);
next if (($nameC eq $duplicateN) && ($val eq $duplicateV));
&Product_Substrate($R_D,$R_Ins,$nameC,$formulaC); #envoie sur la base pour table product ou substrat
if ($nameC eq $compound)
{
# &Reaction_Prod_Sub($R_D2,$R_Ins2,$Equation,$NameReact,$nameC,$formulaC);
print FIL "\n $specie1 : $compound : $val" ;
$duplicateN = $nameC;
$duplicateV = $val;
#-------condition-------#
# deux conditions pour la meme espece
if ($linekmtn =~ /^\s\#(\d+)\#\s(\d.*)\s\{(\w.*)\}\s\s\(\#\d+\#\s(\w.+)\<\d+\>\;\s\#\d+\#\s(\w.+)\<\d+\>\)\s/)
{
$condition=$4.$5;
print FIL (" - $condition");
&R_KMP ->execute ($val,$condition,($SpecRef{$specie1}),$nameC,$formulaC);
} |
et lors de l'appel de ma requete j'ai besoin de la valeur de la clé, j' ai déjà utilisé cette syntaxe : $hash{$key} pour récupérer la valeur d'une clé , et ca marchait très bien jusqu'à présent... je pense qu'il s'agit d'une erreur toute bête mais je l'a trouve pas..
et j'ai bien évidemment déclaré tous ce qui est nécessaire..