Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Spliting file + removing column

by pat_mc (Pilgrim)
on Jan 13, 2011 at 09:12 UTC ( #882063=note: print w/ replies, xml ) Need Help??

in reply to Spliting file + removing column

Hi, AG87,

Can you provide a reduced and condensed version of the actual problem you are having? This would make it easier for everyone here to help you with the Perl. Like this it looks like an awful lot of problem-specific code the meaning of which you probably know better than anyone else here.

Looking forward to helping you out -


Replies are listed 'Best First'.
Re^2: Spliting file + removing column
by AG87 (Acolyte) on Jan 13, 2011 at 17:47 UTC

    Ok in short my input and output both are divided in blocks. My 1st problem 1) In the output of *vertices portion my code prints

    *vertices 3
    1 G
    2 G
    3 G
    1 G
    2 G
    3 G

    But in actual I want it to print the first two columns of the only first energy block like

    *vertices 3
    1 G
    2 G
    3 G

    My code for this section is

    $data_file="HIVgag.ct"; open(MYFILE, $data_file) || die("Could not open file!"); $b=$between=$energy=0; while (<MYFILE>) { if (/energy/i) { $energy++; $between=$b; } elsif ($energy) {$b++} } close(MYFILE); open(MYFILE, $data_file) || die("Could not open file!"); open(WRITE, ">"); print WRITE "*vertices $between\n"; while(<MYFILE>) { foreach $row (<MYFILE>) { @row = $row; (@row[0],@row[1],@row[2], @row[3], @row[4], @row[5], @row[6])=split(/\ +s+/,$row); if (@row[2] ne ENERGY) { print WRITE "@row[1] $row[2]\n"; } } } close(MYFILE);

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://882063]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2016-07-28 07:05 GMT
Find Nodes?
    Voting Booth?
    What is your favorite alternate name for a (specific) keyboard key?

    Results (253 votes). Check out past polls.