Perl 打印时双哈希项

Perl 打印时双哈希项,perl,Perl,作为一个更大程序的一部分,我有一个散列。我正在测试打印钥匙的程序,但它们都是重复的,我不知道为什么 while ( my $line = <SEQ> ) { chomp $line; $line =~ s/>//; my ( @split1 ) = split( "\t", $line ); foreach my $chr ( keys %position ) { #print Dumper \%position; print "$c

作为一个更大程序的一部分,我有一个散列。我正在测试打印钥匙的程序,但它们都是重复的,我不知道为什么

while ( my $line = <SEQ> ) {

  chomp $line;
  $line =~ s/>//;

  my ( @split1 ) = split( "\t", $line );

  foreach my $chr ( keys %position ) {

     #print Dumper \%position;
     print "$chr\n";

     foreach my $pos ( sort keys %{ $position{$chr} } ) {

        if ( $split1[0] =~ /$chr/ ) {
           #print "$chr\t$pos\n";
        }
     }
   }
}
以此类推

从以下内容开始:

my %data;
while(<DATA>){
    chomp;
    my ($chr, $seq) = split;
    $data{$chr} = $seq;
}

print Dumper \%data;
在while中有一个foreach循环,它将为每行输入打印%position哈希的所有键


这会导致你所描述的症状。这就是您要查找的吗?

您正在从SEQ文件句柄读取的数据是什么样子的?SEQ看起来是这样的:>chr1\tactgtagtcatcctat…\n>chr2\tactagctagt…\n因此,您可以将文件示例编辑到您的问题中吗?在注释部分很难阅读。您在一段时间内有一个foreach,它将为每行输入打印%position哈希的所有键。这就是你要找的吗?看起来这里真的需要一本书:使用perl进行遗传学。关于读取FASTA文件的许多类似问题。请不要第十次重新发明轮子。搜索Metaspan,选择一个现有模块,如或,安装并使用它。当然,你的代码段会得到更好的结果。这怎么可能解决问题中描述的问题呢?@BlueStarry-现在是谁的答案?@Borodin-这是为了帮助你朝着正确的方向前进。照目前的情况看,不可能看出OP实际上在试图做什么do@fugu:那么它属于注释而不是解决方案
my %data;
while(<DATA>){
    chomp;
    my ($chr, $seq) = split;
    $data{$chr} = $seq;
}

print Dumper \%data;