将行上的成对设置转换为列

时间:2012-11-27 12:56:03

标签: perl rows

是否有以下的Perl解决方案: 我有一个格式如下的文件

abcdef
abcdef
abcdef
abcdef

这只是一个实例的文件示例,它扩展了几千列和几百行,由1和0组成

我希望我的输出如下

abababab
cdcdcdcd
efefefef

我在其他地方寻找答案,并且只找到了将行直接转置到列的解决方案。在这种情况下,我想把每一对连在一起并将它们转换成一列。

帮助将非常感激,因为我已经坚持解决这个问题好几天了

1 个答案:

答案 0 :(得分:2)

我认为我的解决方案会使用Tie::File模块自动执行多次读取文件所需的缓冲。

use strict;
use warnings;

use Fcntl 'O_RDONLY';
use Tie::File;
use List::Util 'max';

tie my @data, 'Tie::File', 'test.dat', mode => O_RDONLY or die $!;

my $max = max map length, @data;

for (my $index = 0; $index < $max; $index += 2) {
  print substr $_, $index, 2 for @data;
  print "\n";
}

<强>输出

abababab
cdcdcdcd
efefefef