Perl 拼接阵列会生成不需要的新线

Perl 拼接阵列会生成不需要的新线,perl,hash,newline,splice,Perl,Hash,Newline,Splice,我要做的是比较两个哈希的键,如果哈希1中的键存在于哈希2中,则将哈希1中的对应值插入哈希2的值中,并检索修改后的值。 我试图通过从数组中的hash2中拆分值(所述值是制表符分隔的字符串)并拼接数组来实现此目的。 我希望输出如下所示: foo bar baz qux 但它会在拼接之后生成一条不需要的换行线: foo bar modified qux 我怎样才能避免这条新线 以下是相应的代码: foreach my $hash1key ( keys %hash1 )

我要做的是比较两个哈希的键,如果哈希1中的键存在于哈希2中,则将哈希1中的对应值插入哈希2的值中,并检索修改后的值。
我试图通过从数组中的hash2中拆分值(所述值是制表符分隔的字符串)并拼接数组来实现此目的。
我希望输出如下所示:

foo    bar    baz    qux
但它会在拼接之后生成一条不需要的换行线:

foo    bar    modified
qux
我怎样才能避免这条新线

以下是相应的代码:

foreach my $hash1key ( keys %hash1 ) {
    if ( exists $hash2{($hash1key)} ) {
        my $line = $hash2{$hash1key};
        my @results = split /\t/, $line;        
        splice @results, 2, 1, $hash1{$hash1key};
        for ( @results ){ 
            print OUT $_."\t";
        }
    }
}

%hash1
中的值明显以换行符结尾


您显示的代码运行良好;您需要调试
%hash1
的填充
%hash1
中的值明显以换行符终止


您显示的代码运行良好;您需要调试
%hash1

的填充。您的输入数据是否从文件/STDIN读取?看起来您忘记了咀嚼。您的输入数据是从文件/STDIN读取的吗?看起来您忘记了咀嚼。非常感谢,我确实忘记了咀嚼%hash1的值!非常感谢,我确实忘记了咀嚼%hash1的值!