perl中的sdbm_file哈希和正常哈希之间的差异



当需要使用sdbm_file hash而不是普通perl时?SDBM_FILE HASH可以完成正常的Perl哈希无法完成的工作是什么?我在这里阅读文档https://perldoc.perl.org/sdbm_file.html和http://docs.w3cub.com/perl~5.26/sdbm_file/SDBM文件DB的什么?

最大的区别是 SDBM_File hash(以及Perl的任何DBM文件实现)是哈希存储在外部文件中。

如果您将数据存储在标准的perl哈希中,那么只要您的程序运行,哈希就存在。当程序结束时,您的哈希消失了,哈希中的任何数据都消失在稀薄的空气中。下次您运行程序时,哈希将再次开始空。

如果将数据存储在DBM文件哈希中,则将对哈希的任何更改都写入文件。当您的程序结束时,该文件仍然存在。因此,当您再次运行程序时,数据将从文件中重新加载,并且仍在那里供您使用。

大多数时候,您都需要一个只有在程序运行时才存在的瞬态哈希。如果您想要持久数据,那么DBM哈希可能是您想要的(老实说,如今,大多数人只会使用数据库)。

最新更新