in reply to Simple or not

HI, thank you very much and sorry I did not read the rules (I did now), I posted my message a bit in a rush. Anyway I tried your suggestions, but still there are some problems with it. For example:
open my $fh_in , '<', 'test1.txt' or die "Can not open file test1.txt: + $!"; open my $fh_out, '>', 'test2.txt' or die "Can not open file test2.txt: + $!"; while (<$fh_in>) { s/\s+/\t/g; print $fh_out "$_\n"; } close $fh_out; close $fh_in;
The code does the job but still there is a problem in the 5th column since there is not always an entry. This is an example of my text file:
MGI:1918918 381629 0610007C +21Rik 5 syntenic 51374 + C2orf28 2p23.3 B MGI:1918917 71667 0610007L +01Rik 5 syntenic F 55069 + C7orf42 7q11.21 C MGI:1923501 76251 0610007P +08Rik 13 syntenic B3 375748 + C9orf102 9q22.32 M MGI:1915571 58520 0610007P +14Rik 12 syntenic 11161 + C14orf1 14q24.3 B
In the lines with no entry in the 5 th column there should be second TAB. I currently work with an if(...){then....} I hope it is clearer now, Thanks Martin

Replies are listed 'Best First'.
Re^2: Simple or not
by kennethk (Abbot) on Apr 07, 2009 at 18:24 UTC

    Your issue here arises from the fact you are starting with a fixed-width file, not a white-space delimited file - the latter cannot contain a null column with its body by construction.

    You can roll your own solution using substr or pack/unpack. However, it's probably a good idea to turn to CPAN and use one of the many fixed width parsing modules available (e.g. search terms fixedwidth, fixedlength).

    Update: You reposted the problem outside this thread here. You shouldn't break threads unnecessarily, and you really shouldn't double post.