【发布时间】:2017-05-14 08:33:37
【问题描述】:
我正在尝试创建一个执行以下操作的子例程:
- 将两个数组作为输入(Filter、Base)
- 仅输出第二个数组中不存在于第一个数组中的值
例子:
@a = ( 1, 2, 3, 4, 5 );
@b = ( 1, 2, 3, 4, 5, 6, 7);
Expected output : @c = ( 6, 7 );
Called as : filter_list(@filter, @base)
###############################################
sub filter_list {
my @names = shift;
my @arrayout;
foreach my $element (@_)
{
if (!($element ~~ @names )){
push @arrayout, $element;
}
}
return @arrayout
}
试运行:
@filter = ( 'Tom', 'John' );
@array = ( 'Tom', 'John', 'Mary' );
@array3 = filter_list(@filter,@array);
print @array3;
print "\n";
结果:
JohnJohnMary
有人可以帮忙吗?谢谢。
【问题讨论】: