use strict; use warnings; while (defined (my $header = )) { my @parts = split ' ', $header, 17; next if @parts < 12; processEvent (); print join (' ', @parts[3, 4, 6, 5, 7, 8, 11]), "\n"; } sub processEvent { ; for (1 .. 8) { my $line = ; last if ! defined $line; my @parts = split ' ', $line; splice @parts, 3, (@parts - 3) if @parts > 3; s/[^\d\s.]+/ /g for @parts[1 .. $#parts]; s/^\s+|\s+$//g for @parts; print join (' ', @parts), "\n"; } } __DATA__ 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 EP4432.804ES60.7 LRM IPD4435.40 IS67.2 180. AMM IPD4429.50 ES57.3 133. MSO EPC4415.90 ES32.3 CMT EP4430.50 IS58.3 LDM IPC4412.20 ES24.3 3 RXF EPC4414.3 CLX IPC4408.70 ES19.7 #### BUT 4432.804 60.7 LRM 4435.40 67.2 AMM 4429.50 57.3 MSO 4415.90 32.3 CMT 4430.50 58.3 LDM 4412.20 24.3 RXF 4414.3 CLX 4408.70 19.7 1043 54.7 114.037 48.020 17.5 3.2 177