求perl代码。。。比较两个数组
5个回答
展开全部
最起码有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");
自己调调程序
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");
自己调调程序
展开全部
#!/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;
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 即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在cpan上找 Array::Diff
my @old=(1,2,3,4);
my@new=(2,3);
my$diff= Array::Diff->diff(\@old,\@new);
$diff->deleted # [ 1,4];
my @old=(1,2,3,4);
my@new=(2,3);
my$diff= Array::Diff->diff(\@old,\@new);
$diff->deleted # [ 1,4];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@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";
@b = qw/2 3/;
my %h; $h{$_}++ foreach ( @a, @b ) ;
map { push @c, $_ if $h{$_} == 1 } sort {$a<=>$b} keys %h;
print "@c";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询