http://www.perlmonks.org?node_id=973366


in reply to to read particular lines

Let me format this for you, with some recoding as well.

Update:

This probably won't work for you since I wasn't sure what your input data looked like. My assumption was that it was multi-space delimited, but as I re-read your spec, it might have the actual labels interspersed in there.

Perhaps you could include some sample data to clear this up?


use strict; use warnings; use autodie; my $length; my $file = 'the filename...'; open(my $fh, '<', $file) || die "cant open file\n"; while (<$fh>) { chomp; my($target, $mirna, $score, $start) = split(/\s+/); print join("\t", $mirna, $target, $start, $score), "\n"; $length = $.; } close $fh;

This is the code i have written for which the output is:

miR156a AT3G19833 151 0.607541 miR156a AT3G19883 11 0.607541 miR156a AT3G19883 12 0.607541 miR156a AT3G19773 15 0.607541 miR156a AT3G19833 161 0.607541 miR156a AT3G19780 163 0.607541

I haven't tested this, and this might not work exactly as you need it to, but I think it avoids some of the problems you might have had in your version.


What can be asserted without proof can be dismissed without proof. - Christopher Hitchens, 1949-2011