2012-11-27 49 views
2

是否有一個Perl的解決方案如下: 我有以下格式行數轉換成對設置爲列

abcdef 
abcdef 
abcdef 
abcdef 

這個文件只是文件的一個例子,真正的延伸幾千柱和幾百行,由1的向上和0的

我希望我的輸出爲如下

abababab 
cdcdcdcd 
efefefef 

我看了答案別的WH並且只找到將行直接轉移到列的解決方案。在這種情況下,我想將每一對都放在一行上,並將它們轉換爲一列。

幫助將非常感激,因爲我一直停留在解決這一幾天

+0

怎麼樣用不同長度的線路?在這種情況下,輸出應該如何? – Zaid

+1

昨天在[PerlMonks]上回答的同樣的問題(http://perlmonks.org/index.pl?node_id=1005630)。 – Kenosis

回答

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