In this section of your code:
while ( <MYFILE> ) { chomp; my( $label, $index, $value ) = ( split /\s+/ )[3, 5, -1]; $a_vals[ $index ] = $value; $b_vals[ $index ] = $value; }
You need to check the value of $index to get the values for type 'A' into @a_vals, similarly for the 'B' values. The way you have it, you only get 'B' values because they are the last ones in MYFILE, and you are putting the same things into both @a_vals and @b_vals. Since the 'B' values come in last, they overwrite the corresponding 'A' values in @a_vals. You can use the same kind of if/elsif/else logic as in your other loop to fix this(but see comments below on ways to improve that).

Now for this part of the loop over NEWF:

if ($label eq "A"){ $fields[-2] = $a_vals[ $index ] } if ($label eq "B"){ $fields[-2] = $b_vals[ $index ]

You should use if / elsif / else here:

if ($label eq "A") { $fields[-2] = $a_vals[ $index ] } elsif ($label eq "B") { $fields[-2] = $b_vals[ $index ] } else { print "OOPS! bad label\n"; # complain if something is fishy }

You're getting there.


In reply to Re^11: incrementing already existing file by broomduster
in thread incrementing already existing file by wanttoprogram

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.