什么';是Ruby的Perl等价物;“福”;。搞砸

什么';是Ruby的Perl等价物;“福”;。搞砸,ruby,perl,hashcode,Ruby,Perl,Hashcode,Ruby字符串上的方法根据字符串的长度和内容返回一个数字: >> "foo".hash => 876516207 Perl中的等价物是什么?如果您想获得任意字符串的摘要,请查看CPAN上的模块,它支持MD5和SHA1/2。无论需要多少字符,您都可以截断结果。出于好奇,您将使用哈希值做什么?摘要模块对于大多数目的来说可能已经足够好了,但是在某些情况下,您可能需要自己开发。很少见,但也有可能。您还可以查看Ruby源代码,了解如何为字符串对象生成哈希,以防您想在Perl中编写类似的

Ruby字符串上的方法根据字符串的长度和内容返回一个数字:

>> "foo".hash
=> 876516207

Perl中的等价物是什么?

如果您想获得任意字符串的摘要,请查看CPAN上的模块,它支持MD5和SHA1/2。无论需要多少字符,您都可以截断结果。

出于好奇,您将使用哈希值做什么?摘要模块对于大多数目的来说可能已经足够好了,但是在某些情况下,您可能需要自己开发。很少见,但也有可能。

您还可以查看Ruby源代码,了解如何为字符串对象生成哈希,以防您想在Perl中编写类似的东西。结果哈希是字符串长度和内容的函数,在中计算。

我很好奇Ruby用户是如何使用它的。Ruby之外特定于Ruby的散列值有什么用?Ruby,IIRC,类似于Java。所有的对象都在一个哈希表中,所以它基本上就是项目的ID。是的,但是你要如何处理对象的ID呢?:)@brian:ruby中的hash方法和java中的getHashCode方法被基于hash的数据结构(如hash映射)使用。它们与对象的id无关,只是对于类对象,哈希代码被定义为对象的id(但不是字符串。当两个字符串具有相同的内容时,它们具有相同的哈希代码,而不是相同的内存位置)。@briandfoy:可以使用哈希代码以可预测的方式对数据流进行采样(例如,对于1%的样本,仅获取哈希代码可被100整除的对象)。无需点击CPAN。
Digest
Digest::MD5
是Perl 5.8中的核心,
Digest::SHA
也是Perl 5.10中的核心。对于小字符串来说,这似乎有些过分。我有一个带有字符串ID的对象流,我希望以可预测的方式对其进行采样(也就是说,我不能使用random,因为当我看到一个DUP时,我必须知道它是否被采样)。Digest似乎是一种过度使用;我不需要128位;16位对我来说就足够了。我还担心Digest会在性能方面扼杀我。