#!/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 = $tokens[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], my $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, $GAP\n"; } close ($oh); close ($ih);