分页: 1 / 1

在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

发表于 : 2014-03-28 10:03
zuiqiangzhe
比如 @A = qw(1 2 3 4 5 );
@B = qw(1 2 3);
如何求@C = qw(4 5);
求指教

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

发表于 : 2014-03-29 21:25
eexpress
▶ pl '@A = qw(1 2 3 4 5 6); @B = qw(1 2 3); foreach (@A){next if $_ ~~ @B; push @C,$_;}; print @C;'
Smartmatch is experimental at -e line 1.
456

▶ type pl
pl 是 `perl -e' 的别名

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

发表于 : 2014-03-29 21:26
eexpress
▶ pl '@A = qw(1 2 3 4 5 6); @B = qw(1 2 3); foreach (@A){next if $_ ~~ @B; push @C,$_;}; print @C;'
Smartmatch is experimental at -e line 1.
456

▶ type pl
pl 是 `perl -e' 的别名

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

发表于 : 2014-04-21 20:55
flfruit
感觉好简单地样子。。。但是我写不出来,哭。。。。

Re: 在Perl中,两个数组,第二个数组是第一个数组的子集,如何求第二个数组在第一个数组的补集?

发表于 : 2014-11-16 23:04
45177659

代码: 全选

perl -e '@A = qw(1 2 3 4 5 );@B = qw(1 2 3);@C = grep {not $_ ~~ @B} @A; print join ",",@C'