Dear Monks,

I now have a code that runs but doesn't print what I want

#!/usr/bin/perl; use strict; use warnings; my $fin = "SELECTDAT2"; my $fout = "myfile"; open my $ih, '<', $fin or die "cannot open $fin for reading, $! "; open my $oh, '>', $fout or die "cannot open $fout for writing, $! "; while (<$ih>) { my @tokens = split; my $SEC1 = $tokens[4], my $LAT = $tokens[5], my $LONG = $tokens[6], my + $DEPTH = $tokens[7], my $NO = $tokens[11], my $GAP = $tokens[12]; my $nextline = <$ih>; $nextline; my $y = $tokens[0], my $m = $tokens[1], my $d = $tokens[2], my $h = $t +okens[3]; sub events { my @list; foreach $nextline (@list) { if ($nextline le $NO) { my @tokens = split; my $SOURCE = $tokens[0], my $PSEC = $tokens[4], my $PQ = $tokens[5], m +y $SSEC = $tokens[8], my $SQ = $tokens[9]; push (@list, $_); } } return @list; } last line if $nextline eq ""; print $oh "$NO\n", "events($@list)\n", "$SEC1, $LONG, $LAT, $DEPTH, $G +AP\n"; } close ($oh); close ($ih);

this is one event from my file SELECTDAT2

82 2 22 1043 54.7 48.020 114.037 17.5 3.2 2.9 13 177 84.3 0.20 +1.6 2.7 C MBMG * 3.1 KALISPELL VALLEY; FELT 3.07 82022210 BUT EP 4432.804ES60.7 LRM IPD4435.40 IS67.2 180. AMM IPD4429.50 ES57.3 133. MSO EPC4415.90 ES32.3 CMT EP 4430.50 IS58.3 LDM IPC4412.20 ES24.3 3 RXF EPC4414.3 CLX IPC4408.70 ES19.7

this is what my code prints out in myfile.

177 events(list) 54.7, 114.037, 48.020, 17.5, 84.3 events(list) , , , , events(list) , , , , events(list) , , , ,

this is what I want printed out

13 'BUT' 4432.80 4 60.7 0 'LRM' 4435.40 0 67.2 0 'AMM' 4429.50 0 57.3 0 'MSO' 4415.90 0 32.3 0 'CMT' 4430.50 0 58.3 0 'LDM' 4412.20 0 24.3 3 'RXF' 4414.3 0 'CLX' 4408.70 0 19.7 0 54.7 114.037 48.020 17.5 177 GO ON TO NEXT EVENT DATA SET

I can't figure why my 'myfile' is not printing out as I want it to with my code.


In reply to redrafted code by velocitymodel

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.