The only suggestion I would make is to improve the error handling around the get. I had occasional timeouts when I tried it that didn't get reported back. Geo::METAR has problems with some of the UK data, for example, visibility is reported as a four digit number in meters rather than statute miles. But nothing that a quick hack around the code can't fix.