作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个文本文件,其中包含各种 position
的柱状数据- value
,按 position
排序.
这是第一个文件(文件 A
)的示例:
100 1
101 1
102 0
103 2
104 1
...
B
) 的示例:
20 0
21 0
...
100 2
101 1
192 3
193 1
...
A
的任一行进行流式传输。或
B
并比较
position
值。
A
的行或文件
B
直到位置相等(当我再次执行计算时)或者我达到两个文件的 EOF。
最佳答案
看起来像是一个可能会偶然发现的问题,例如带有键和值的数据库表数据。下面是 rjp 提供的伪代码的实现。
#!/usr/bin/perl
use strict;
use warnings;
sub read_file_line {
my $fh = shift;
if ($fh and my $line = <$fh>) {
chomp $line;
return [ split(/\t/, $line) ];
}
return;
}
sub compute {
# do something with the 2 values
}
open(my $f1, "file1");
open(my $f2, "file2");
my $pair1 = read_file_line($f1);
my $pair2 = read_file_line($f2);
while ($pair1 and $pair2) {
if ($pair1->[0] < $pair2->[0]) {
$pair1 = read_file_line($f1);
} elsif ($pair2->[0] < $pair1->[0]) {
$pair2 = read_file_line($f2);
} else {
compute($pair1->[1], $pair2->[1]);
$pair1 = read_file_line($f1);
$pair2 = read_file_line($f2);
}
}
close($f1);
close($f2);
关于perl - 如何在 Perl 中同时浏览两个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2498937/
我是一名优秀的程序员,十分优秀!