The simple combination of File::ReadBackwards, split join and reverse does it off disk, fast and efficiently. The split assumes some sort of space separated data but you could modify this if required. HTH
C:\>type transpose.pl #!/usr/bin/perl -w use strict; use File::ReadBackwards; transpose( "c:/data.txt", "c:/data-transpose.txt" ); sub transpose { my ( $infile, $outfile ) = @_; tie *BW, 'File::ReadBackwards', $infile or die "Can't read $infile + $!\n"; open OUT, ">$outfile" or die "Can't write $outfile $!\n"; while( <BW> ) { chomp; print OUT join "\t", reverse(split ' '),"\n"; } close BW; close OUT; } C:\>type data.txt 11 12 13 21 22 23 31 32 33 C:\>transpose.pl C:\>type data-transpose.txt 33 32 31 23 22 21 13 12 11 C:\>
cheers
tachyon
In reply to Re: Binary file handling
by tachyon
in thread Binary file handling
by Hena
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |