我有两个包含哈希的数组引用:
$A = [
{
"t" => "1419054300000",
"v" => "28.1"
},
{
"t" => "1419053400000",
"v" => "28.2"
},
{
"t" => "1419052500000",
"v" => "28.4"
}
];
$B = [
{
"t" => "1419053400000",
"v" => "28.2"
},
{
"t" => "1419052500000",
"v" => "28.4"
}
];
我希望仅来自$A
的哈希值,t
中的一个哈希值中不存在$B
的值{每个arrayref t
值是唯一的,v
不是。
我认为有一些明显的方法可以做到这一点,但是我一整天都没有成功地反对这一点。
答案 0 :(得分:1)
您可以使用perl5i diff
method。
use perl5i::2;
...initialize $A and $B...
say $A->diff($B)->mo->as_perl;
__END__
[
{
't' => '1419054300000',
'v' => '28.1'
}
]
答案 1 :(得分:1)
与往常一样,您可以构建哈希查找,其中键是要过滤掉的元素,
my %seen;
@seen{ map $_->{t}, @$B } = ();
my $C = [
grep { !exists $seen{$_->{t}} } @$A
];