什么时候需要使用SDBM_File哈希而不是普通的Perl?什么是SDBM_File哈希可以实现正常的Perl哈希不能? 我在这里阅读了文档https://perldoc.perl.org/SDBM_File.html和http://docs.w3cub.com/perl~5.26/sdbm_file/,但我只是想知道为什么不能使用Perl哈希来代替SDBM文件数据库?
答案 0 :(得分:2)
最大的区别是SDBM_File
哈希(以及任何Perl的DBM文件实现)是哈希存储在外部文件中。
如果您将数据存储在标准Perl哈希中,那么只要您的程序正在运行,该哈希就会存在。当程序结束时,你的哈希消失了,哈希中的任何数据都消失得无影无踪。下次运行程序时,哈希将再次开始为空。
如果将数据存储在DBM文件哈希中,则对哈希的任何更改都将写入文件。程序结束时,该文件仍然存在。因此,当您再次运行程序时,数据将从文件中重新加载,并且仍可供您使用。
大多数情况下,您需要一个仅在程序运行时才存在的瞬态哈希。如果你想要持久性数据,那么DBM哈希可能就是你想要的(虽然,老实说,现在大多数人只会使用数据库)。