Perl 中的哈希集

发布于 2024-11-26 13:38:56 字数 152 浏览 2 评论 0原文

考虑以下代码:

$inFilesToCopy{$filename} = $filename;

我有一个哈希表,其中键和值都是文件名。我想避免使用额外的内存并且不存储文件名两次。

Perl中有set对象吗?

Consider the following code:

$inFilesToCopy{$filename} = $filename;

I have a hash table where both the key and value are the name of a file. I would like to avoid using extra memory and not store the filename twice.

Is there a set object in Perl?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

皇甫轩 2024-12-03 13:38:56

Set::Object 的作用如下
你会期望:

use Set::Object qw(set);

my $files = set();
$files->insert($file);
my @files = $files->members();

你也可以做集合数学:

my $a = set();
$a->insert(...);

my $b = set();
$b->insert(...);

my $only_in_a = $a - $b;
copy_to_b($only_in_a->members);

Set::Object works as
you'd expect:

use Set::Object qw(set);

my $files = set();
$files->insert($file);
my @files = $files->members();

You can also do set math:

my $a = set();
$a->insert(...);

my $b = set();
$b->insert(...);

my $only_in_a = $a - $b;
copy_to_b($only_in_a->members);
诺曦 2024-12-03 13:38:56

您可能会考虑这样做:

$inFilesToCopy{$_} = 1;

然后您可以进行这样的测试:

if($inFilesToCopy{$filename}) { ... }

您还可以使用“keys %inFilesToCopy”来获取文件列表。

You might consider doing:

$inFilesToCopy{$_} = 1;

and then you can do tests like this:

if($inFilesToCopy{$filename}) { ... }

you can also use 'keys %inFilesToCopy' to get the list of files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文