私の問題は、この回答で言及されているものと同じです。私はコードを理解しようとしてきましたが、これが私が学んだことです:
ファイルparse_xml.cgiで失敗し、messagesreturn $message{$name}という名前のファイル(html_en ディレクトリにある) からメッセージ ( ) を取得しようとします。$messages の値は、ファイルadminprotocol-lib.plのメソッドから取得されます。GetMessageHash
sub GetMessageHash
{
return $ENV{"QTSSADMINSERVER_EN_MESSAGEHASH"}
}
これ$ENV{"QTSSADMINSERVER_EN_MESSAGEHASH"}はファイルstreamingadminserver.plで設定されます:
$ENV{"QTSSADMINSERVER_EN_MESSAGEHASH"} = $messages{"en"}
私は Perl について何も知らないので、何が問題なのかわかりません。なぜなら、私が見たもの$messages{"en"}は正しい値を持っているからです (もしそうならprint($messages{"en"}{'SunStr'}、値 "Sun" を取得します))。
しかし、私がやろうとしてもprint($ENV{"QTSSADMINSERVER_EN_MESSAGEHASH"}{'SunStr'}、何も得られません。$ENV{"QTSSADMINSERVER_EN_MESSAGEHASH"}設定されていないようです
この簡単な例を試してみましたが、うまくいきました:
$ENV{"HELLO"} = "hello";
print($ENV{"HELLO"});
正常に動作し、「こんにちは」と表示されます。
問題が何であるかについて何か考えはありますか?