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

tarakaramji has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: to read particular lines
by thezip (Vicar) on May 30, 2012 at 20:30 UTC

    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