考虑下面的代码:
我有一个哈希表,其中键和值都是文件名。我想避免使用额外的内存并且不重复存储文件名。
在Perl中是否有集合对象?
考虑下面的代码:
$inFilesToCopy{$filename} = $filename;
我有一个哈希表,其中键和值都是文件名。我想避免使用额外的内存并且不重复存储文件名。
在Perl中是否有集合对象?
考虑下面的代码:
$inFilesToCopy{$filename} = $filename;
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);
$inFilesToCopy{$_} = 1;
接下来,您可以执行如下测试:
if($inFilesToCopy{$filename}) { ... }
'$_'
这个哈希键可能不是你想要的。单引号不会进行变量替换,因此'$_'
是字面意义上的字符串'$_'
而不是$_
的值。 - cftarnas