我正在用 Perl 编写一个 Web 应用程序Dancer。假设我在 中声明了一个变量our,并将 的内容分配给它:$varA.pmfile1
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 的修改内容显示在第二个 Web 浏览器中。这个是正常的。但是,当我在第一个网络浏览器中单击显示按钮时,它也显示了修改后的内容,而不是原来的内容。与在另一个 Web 浏览器中没有第二个 Web 请求的第一个实验相比,该变量似乎$var在 Web 请求 - 响应过程中是共享的。但为什么会这样?你能给出一些解释吗?