如何在Perl中保留一组对象?

Dav*_*d B 4 perl reference set data-structures

我想保留一组(Moose)对象,因此每个对象只能出现一次.

我想到使用哈希,其中键是对象的地址,然后在添加对象之前检查键的存在.这是一种常见的做法吗?如何获取对象的地址?

UPDATE

再想一想,简单地使用对象引用作为关键是什么问题:

my %objects = ();

# some object (just created or or taken from somewhere...)
my $object ...

# add object to set
$objects{$object} = $object;

# operate on all objects
foreach my $obj (values %objects) {
...
}
Run Code Online (Sandbox Code Playgroud)

Sin*_*nür 7

您可以使用Set :: Object.

要获取引用的地址,可以使用Scalar :: Util :: refaddr.