在Embperl中%mdat(与%udat相比)的目的是什么?

时间:2011-01-10 21:11:50

标签: perl session-variables embperl

我看到会话处理提到了%mdat以及%udat哈希。有什么区别,我何时以及为什么要使用%mdat哈希?

1 个答案:

答案 0 :(得分:3)

Embperl POD中所述,

  

您可以将任何数据存储在%mdat哈希中,如果有任何请求来自同一个Embperl文档,您将再次在该哈希中看到相同的值。

此外,请注意上述POD中的“您将看到”措辞有些误导​​,这可能会导致您的混淆。

main Embperl documentation提供了更准确的答案,消除了混淆:

  

下次任何用户点击同一个Embperl页面时,Embperl会从%mdat填充Apache::Session哈希,其值与您在上一个请求中存储的值相同页。

请注意我以粗体突出显示的文字 - 任何用户。典型的会话数据(存储在%udat中)仅存储在特定用户

因此,%mdat充当一种每个人的embperl页面,但与用户无关的数据存储。

要回答“何时”问题,在实践中使用%mdat的示例将是每页访问计数器。