#!/usr/bin/env perl use strict; use warnings; my ($in,@array,$i,@foo,@bar,$lat,$lon); $in=0; while (<>) { if (/^OBS ASH CLOUD/ .. /^\n/) { parse(); push(@foo, @array); } if (/^FCST ASH CLOUD \+6H/ .. /^\n/) { parse(); push(@bar, @array); } } obs(); fcst(); sub fcst{ shift (@bar); shift (@bar); shift (@bar); shift (@bar); shift (@bar); shift (@bar); for ($i = 0; $i <= $#bar; $i=$i+2) { $lat=$bar[$i]/100; $lon=$bar[$i+1]/100; print "fcstlat=$lat "; print "fcstlon=$lon\n"; } } sub obs{ shift (@foo); shift (@foo); shift (@foo); shift (@foo); pop (@foo); pop (@foo); pop (@foo); pop (@foo); for ($i = 0; $i <= $#foo; $i=$i+2) { $lat=$foo[$i]/100; $lon=$foo[$i+1]/100; print "obslat=$lat "; print "obslon=$lon\n"; } } sub parse{ chomp; $_=~ s/-//g; $_=~ s/N//g; $_=~ s/S/-/g; $_=~ s/E//g; $_=~ s/W/-/g; @array=split(/\s+/); }