Hey dude, not everywhere has perfect climate like Santa Monica! As you may know, negative temps exist at some locations (and are denoted with a leading 'M' in METAR reports).
Here is the skeleton of a solution handling negative temperatures (using the reading from Fairbanks, AK at this time for testing).
(But see also Geo::METAR for an oldie-but-goodie parser for this format, which provides the temp in F in its dump output.)
Output:use strict; use warnings; while ( my $line = <DATA> ) { $line =~ s{ \s (M?\d{2}) / (M?\d{2}) \s } { sprintf ' %d/%d ', convert($1), convert($2) }xeg; print $line; } sub convert { $_[0] =~ s/M/-/r * 9/5 + 32 }; __DATA__ KSMO 181551Z 00000KT 10SM CLR 14/08 A3009 RMK AO2 SLP189 T01440083 PAFA 190153Z 00000KT 5SM -SN BR FEW012 BKN025 OVC070 M07/M08 A2959 RMK + AO2 SLP030 T10671078
KSMO 181551Z 00000KT 10SM CLR 57/46 A3009 RMK AO2 SLP189 T01440083 PAFA 190153Z 00000KT 5SM -SN BR FEW012 BKN025 OVC070 19/17 A2959 RMK A +O2 SLP030 T10671078
Hope this helps!
In reply to Re: substitution with regex
by 1nickt
in thread substitution with regex
by drose2211
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |