arrays - 如何从数组中减去数组?

标签 arrays perl

当我尝试以下

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @bl = qw(red green blue);
my @a = qw(green yellow purple blue pink);

print Dumper [grep {not @bl} @a];


我得到一个空数组。我本来希望从@bl中减去@a,所以输出是yellow purple pink

怎么了

最佳答案

您需要将@bl转换为哈希值以执行设置差异:

my %in_bl = map {$_ => 1} @bl;
my @diff  = grep {not $in_bl{$_}} @a;

关于arrays - 如何从数组中减去数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4891898/

相关文章:

javascript - 使用数组的数学跳过 "16"

javascript - Google Charts API 数据表单元格颜色

perl - 将 Vanilla Perl CGI 中的请求 header 克隆到 LWP UserAgent

regex - 插入正则表达式以格式化日期(Perl)

python - 将浮点值舍入到区间限制/网格

java - 循环遍历二维数组并搜索某个值,然后打印出一个元素

java - 如何调用带有数组参数的方法

javascript - 从javascript中的关联数组/对象获取特定元素

perl - 我如何确定 CPAN 发行版的哪些依赖项需要编译器?

linux - 重新处理文本文件以将包含回车符 (CR) 字符的行合并到屏幕结果中