Perl で Web アプリを作成していDancer
ます。our
で変数$var
を宣言し、A.pm
の内容を代入するとfile1
します。
sub get_file_content {
our $var = <FILE1>;
}
後で別のファイルで使用したいので、次のように宣言var
しました。our
B.pm
sub display_file_content {
&display($A::var);
}
したがって、get_file_content
実行された後は$var
、file1 の内容である必要があります。を実行する前display_file_content
に、file1 の内容を変更し、いくつかのボタンをクリックして実行しdisplay_file_content
ました。想定通り、file1 の元の内容が表示されました。
次に、file1 の内容を変更した後、ボタンをクリックしなかったことを除いて、上記と同じことを行いましたdisplay_file_content
。代わりに、別の Web ブラウザーで同じページに対する別の Web 要求を開始します。私は最初に実行get_file_content
し、ボタンをクリックしてdisplay_file_content
直接進みます。file1 の変更されたコンテンツが 2 番目の Web ブラウザーに表示されました。これは正常です。しかし、最初の Web ブラウザーで表示ボタンをクリックすると、元のコンテンツではなく、変更されたコンテンツも表示されました。別の Web ブラウザで 2 回目の Web リクエストを行わなかった最初の実験と比較すると、変数$var
は両方の Web リクエスト - レスポンス プロセスで共有されているようです。しかし、なぜそれが起こったのですか?いくつか説明をお願いできますか?