求perl代码。。。比较两个数组

@a=/1234/;@b=/23/;去掉相同的元素得出@c=/14/;... @a = /1 2 3 4/;
@b = /2 3/;
去掉相同的元素
得出@c = /1 4/;
展开
 我来答
精心且昂然灬榜眼T
2013-01-06 · 超过12用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:16.2万
展开全部
最起码有N种方法,我四年不看perl了,忘了很多,以前水平一个语句就能解决问题。现在只能用最笨的方法两层循环,效率较差。
my $k,$i,$j;
open (OUTFILE, ">>输出.fasta");
for($i=0;$i<=3;$i++){
$x=$a[$i];for($j=0;$j<=3;$j++){
$y=$b[$j];if($x != $y){$c[$k]=$x; $k++;}
}
}
print OUTFILE ("@c\n");
自己调调程序
ba_du_co
2013-01-18 · TA获得超过937个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:274万
展开全部
#!/usr/bin/perl
my @a = qw/1 2 3 4/;
my @b = qw/2 3/;
my %h;
my @c = grep $h{$_} < 2, map { $h{$_}++; $_ } @a, @b;
print join ', ', @c;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-01-05
展开全部
不需要自己写,用 List::Compare这个module 即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shenwei5566
2013-01-07 · TA获得超过610个赞
知道小有建树答主
回答量:575
采纳率:33%
帮助的人:247万
展开全部
在cpan上找 Array::Diff

my @old=(1,2,3,4);
my@new=(2,3);
my$diff= Array::Diff->diff(\@old,\@new);
$diff->deleted # [ 1,4];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c9e795dda
2013-01-12 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1137万
展开全部
@a = qw/1 2 3 4/; # <-- 是 qw// 或者 qq//, 不是 / / , 那是正则来的
@b = qw/2 3/;

my %h; $h{$_}++ foreach ( @a, @b ) ;
map { push @c, $_ if $h{$_} == 1 } sort {$a<=>$b} keys %h;
print "@c";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式