拼接数组会产生不需要的新行
Splicing an array generates an unwanted new line
我要做的是比较两个hash的key,如果hash1中的key存在于hash2中,则将hash1中对应的值插入到hash2的值中,取回修改后的值。
我试图通过将 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
的人口
我要做的是比较两个hash的key,如果hash1中的key存在于hash2中,则将hash1中对应的值插入到hash2的值中,取回修改后的值。
我试图通过将 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