#!/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, $! ";
my @records;
my @list;
while (<$ih>) {
my @tokens = split;
my $SEC1 = $tokens[3];
my $LAT = $tokens[4];
my $LONG = $tokens[5];
my $DEPTH = $tokens[6];
my $NO = $tokens[10];
my $GAP = $tokens[11];
for $_ (@list) {
my ($SEC1, $LAT, $LONG, $DEPTH, $NO, $GAP) = parse_record($_);
push @records, [ $SEC1, $LAT, $LONG, $DEPTH, $NO, $GAP ];
}
#sort by LONG (index 0=NO, 1=SEC1, 2=LONG, 3=LAT, 4=DEPTH, 5=GAP)
my @sorted_recs = sort { $records[$a][2] <=> $records[$b][2] } @records;
my $nextline = <$ih>;
my $y = $tokens[0], my $m = $tokens[1], my $d = $tokens[2], my $h = $tokens[3];
sub events {
my (@list);
foreach $nextline (@list) {
my @tokens = split;
my $SOURCE = $tokens[0];
my $PSEC = $tokens[3];
my $PQ = $tokens[4];
my $SSEC = $tokens[7];
my $SQ = $tokens[8];
last if $nextline eq "";
push (@list, $_);
}
return @list;
}
last if eof();
for my $rec (@sorted_recs) {
my ($NO, $SEC1, $LONG, $LAT, $DEPTH, $GAP) = @$rec;
print $oh "$NO\n", events(@list), "\n", "$SEC1, $LONG, $LAT, $DEPTH, $GAP\n";
}
}
close ($oh);
close ($ih);
####
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
####
177
events(list)
54.7, 114.037, 48.020, 17.5, 84.3
events(list)
, , , ,
events(list)
, , , ,
events(list)
, , , ,
####
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