На спане есть прикольный модуль Weather::Google, который умеет обращаться к API Гугла за погодой.
В документации описано много вариантов использования, но самый простой — указать населенный пункт и перечислить, какие параметры вам нужны.
use Weather::Google;
use v5.10;
use strict;
use open qw(:utf8 :std);
my $weather =
new Weather::Google('Moscow, Russia', {language => 'ru'});
my @data = $weather->current qw(
temp_c humidity wind_condition
);
say for @data;
Эта программа печатает текстовые строки с запрошенными параметрами (температура в градусах Цельсия, влажность, данные о ветре):
-3
Влажность: 89 %
Ветер: ЮВ, 1 м/с
Адрес, по которому отправляются запросы, виден в коде: www.google.com/ig/api?weather=. В принципе, ничего не мешает самостоятельно разобрать XML в ответе на прямой запрос типа http://www.google.com/ig/api?weather=Moscow, Russia.
О! &hl=en тоже работает.