1
my $var_cot_descn="Veteran's Affairs";
my %cot_descn= ("Correctional","Veteran's Affairs","State Pharmacy Assistance Program","VA Medical Center","VA Mail Order Pharmacy","PHS 340B Entity");

if (exists $cot_descn{$var_cot_descn}){
    print  "CustomerDomain=\"GOV\"
        />
        </Org>
        \n";
}
else{
    print  "CustomerDomain=\"COM\"
        />
        </Org>
        \n";
}

if条件が失敗する原因となる「Veteran's Affairs」と比較する場合を除いて、すべて正常に動作します。

どうすればこれを修正できますか?

4

2 に答える 2

5

ハッシュには"Veteran's Affairs"キーがなく、"Veteran's Affairs" があります。より一般的な方法でハッシュを定義した場合:

my %cot_descn = (
    "Correctional" => "Veteran's Affairs",
    "State Pharmacy Assistance Program" => "VA Medical Center",
    "VA Mail Order Pharmacy" => "PHS 340B Entity"
);

そうすれば、構造がより明確になります。キーがないので"Veteran's Affairs"、もちろん、このテストはあなたをelseブランチに送ります:

if (exists $cot_descn{$var_cot_descn})

いつ$var_cot_descnですか"Veteran's Affairs"

おそらく、%cot_descn後方に最初のキー/値があります。

于 2013-07-07T03:03:55.373 に答える