.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Weather::Com::Base 3pm" .TH Weather::Com::Base 3pm "2007-07-09" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Weather::Com::Base \- Perl extension for getting weather information from weather.com .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Data::Dumper; \& use Weather::Com::Base; .Ve .PP .Vb 12 \& # define parameters for weather search \& my %params = ( \& \(aqcurrent\(aq => 1, \& \(aqforecast\(aq => 3, \& \(aqlinks\(aq => 1, \& \(aqunits\(aq => \(aqs\(aq, \& \(aqproxy\(aq => \(aqhttp://proxy.sonstwo.de\(aq, \& \(aqtimeout\(aq => 250, \& \(aqdebug\(aq => 1, \& \(aqpartner_id\(aq => \(aqsomepartnerid\(aq, \& \(aqlicense\(aq => \(aq12345678\(aq, \& ); .Ve .PP .Vb 2 \& # instantiate a new weather.com object \& my $weather_com = Weather::Com::Base\->new(%params); .Ve .PP .Vb 3 \& # search for locations called \(aqHeidelberg\(aq \& my $locations = $weather_com\->search(\(aqHeidelberg\(aq) \& or die "No location found!\en"; .Ve .PP .Vb 5 \& # and then get the weather for each location found \& foreach (keys %{$locations}) { \& my $weather = $weather_com\->get_weather($_); \& print Dumper($weather); \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIWeather::Com::Base\fR is a Perl module that provides low level \s-1OO\s0 interface to gather all weather information that is provided by \fIweather.com\fR. .PP This module should not be used directly because of the business rules applying if one want's to use the \fIweather.com\fR's \fIxoap\fR interface. These business rules enforce you to implement several caching rules. .PP Therefore, if you want to use a low level interface, please use \&\fIWeather::Com::Cached\fR instead. It has the same interface as this module but it implements all caching rules of \fIweather.com\fR. .Sh "\s-1EXPORT\s0" .IX Subsection "EXPORT" None by default. But there are a few static methods for conversion purposes you may wanna use: .IP "* celsius2fahrenheit(celsius)" 4 .IX Item "celsius2fahrenheit(celsius)" Takes the temperature in celsius and returns the temperature in fahrenheit (as an integer value). .IP "* fahrenheit2celsius(fahrenheit)" 4 .IX Item "fahrenheit2celsius(fahrenheit)" Takes the temperature in fahrenheit and returns the temperature in celius (as an integer value). .IP "* convert_winddirection(direction)" 4 .IX Item "convert_winddirection(direction)" Takes a wind mnemonic (\*(L"N\*(R", \*(L"\s-1WNW\s0\*(R", etc.) or a long name of a wind direction (\*(L"North Northeast\*(R") and returns the other format. .Sp The long names are only understood if used as follows: .Sp .Vb 17 \& "North" \& "North Northwest" \& "Northwest" \& "West Northwest" \& "West" \& "West Southwest" \& "Southwest" \& "South Southwest" \& "South" \& "South Southeast" \& "Southeast" \& "East Southeast" \& "East" \& "East Northeast" \& "Northeast" \& "North Northeast" \& "Variable" .Ve .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" .Sh "new(hash or hashref)" .IX Subsection "new(hash or hashref)" The constructor takes a hash or a hashref containing a bunch of parameters used to configure your weather search. None of these paramters is mandatory. As there are reasonable defaults for any of them, you need only to provide those parameters where you whish to go with non-default values. .PP The parameters in detail: .IP "current => 0 | 1" 4 .IX Item "current => 0 | 1" This parameter defines whether to fetch the current conditions of a location or not. .Sp Defaults to 0 (false). .IP "forecast => 0 | 1 .. 10" 4 .IX Item "forecast => 0 | 1 .. 10" This parameter defines whether to fetch a weather forecast or not. .Sp If set to 0 (false) no forecast is read, if set to a value between 1 and 10 a forecast for the number of days is requested. If set to any other value, this is interpreted as 0! .Sp Defaults to 0 (false). .IP "links => 0 | 1" 4 .IX Item "links => 0 | 1" This parameter specifies whether to load some http links from \fIweather.com\fR also or not. .IP "units => s | m" 4 .IX Item "units => s | m" This parameter defines whether to fetch information in metric (m) or \&\s-1US\s0 (s) format. .Sp Defaults to 'm'. .IP "proxy => 'none' | 'http://some.proxy.de:8080'" 4 .IX Item "proxy => 'none' | 'http://some.proxy.de:8080'" Usually no proxy is used by the LWP::UserAgent module used to communicate with \fIweather.com\fR. If you want to use an \s-1HTTP\s0 proxy you can specify one here. .IP "proxy_user => undef | 'myuser'" 4 .IX Item "proxy_user => undef | 'myuser'" If specified, this parameter is provided to the proxy for authentication purposes. .Sp Defaults to \fIundef\fR. .IP "proxy_pass => undef | 'mypassword'" 4 .IX Item "proxy_pass => undef | 'mypassword'" If specified, this parameter is provided to the proxy for authentication purposes. .Sp Defaults to \fIundef\fR. .IP "timeout => some integer (in seconds)" 4 .IX Item "timeout => some integer (in seconds)" The timeout for \fILWP::UserAgent\fR to get an \s-1HTTP\s0 request done usually is set to 180s. If you need a longer timeout or for some reasons a shorter one you can set this here. .Sp Defaults to 180 seconds. .IP "debug => 0 | 1" 4 .IX Item "debug => 0 | 1" Set debugging on/off. .Sp Defaults to 0 (off). .IP "partner_id => 'somepartnerid'" 4 .IX Item "partner_id => 'somepartnerid'" To be allowed to fetch weather information from \fIweather.com\fR you need to register (free of charge) to get a so called \fIPartner Id\fR and a \&\fILicense Key\fR. .IP "license => 'somelicensekey'" 4 .IX Item "license => 'somelicensekey'" See \fIpartner_id\fR. .SH "METHODS" .IX Header "METHODS" .Sh "search(place to search)" .IX Subsection "search(place to search)" Searches for all known locations matching the provided search string. .PP At \fIweather.com\fR you have to request weather data for a specific location. Therefor you first have to find the location id for the location you are looking for. \fIweather.com\fR provides two possibilities to search: .IP "1. by name" 4 .IX Item "1. by name" You may search for a location by name, e.g. \*(L"Heidelberg\*(R", \*(L"Heidelberg, Germany\*(R", \&\*(L"New York, \s-1NY\s0\*(R", etc. .IP "2. by postal code" 4 .IX Item "2. by postal code" You may search for a location by the postal code. .PP If the search causes an error, this methods dies with a (hopefully) helpful error message. .PP If the search returns no matches, 0 is returned. .PP Else, the method returns a hashref containing all locations found. The hashref looks as follows if you search for \fIHeidelberg\fR: .PP .Vb 5 \& $HASHREF = { \& \(aqGMXX0053\(aq => \(aqHeidelberg, Germany\(aq, \& \(aqUSKY0990\(aq => \(aqHeidelberg, KY\(aq, \& \(aqUSMS0154\(aq => \(aqHeidelberg, MS\(aq \& }; .Ve .PP The keys of the hash are the location ids as used within \fIweather.com\fR. This keys have to be used for fetching the weather information of one location. .Sh "get_weather(location id)" .IX Subsection "get_weather(location id)" This method fetches all weather information as defined by the object attributes you may have modified while instantiating the weather object. .PP If an error occurs while fetching weather information, this method dies setting $@ to a meaningfull error message. .PP The following hashref shows the maximum of data that can be fetched from \&\fIweather.com\fR. The parts of the hashref are explained afterwards. .PP .Vb 85 \& $HASHREF = { \& \(aqhead\(aq => { \& \(aqur\(aq => \(aqmm\(aq, \& \(aqud\(aq => \(aqkm\(aq, \& \(aqus\(aq => \(aqkm/h\(aq, \& \(aqform\(aq => \(aqMEDIUM\(aq, \& \(aqup\(aq => \(aqmb\(aq, \& \(aqlocale\(aq => \(aqen_US\(aq, \& \(aqut\(aq => \(aqC\(aq \& }, \& \(aqloc\(aq => { \& \(aqsuns\(aq => \(aq8:40 PM\(aq, \& \(aqzone\(aq => \(aq2\(aq, \& \(aqlat\(aq => \(aq49.41\(aq, \& \(aqtm\(aq => \(aq3:48 PM\(aq, \& \(aqsunr\(aq => \(aq6:18 AM\(aq, \& \(aqdnam\(aq => \(aqHeidelberg, Germany\(aq, \& \(aqid\(aq => \(aqGMXX0053\(aq, \& \(aqlon\(aq => \(aq8.68\(aq \& }, \& \(aqcc\(aq => { \& \(aqicon\(aq => \(aq28\(aq, \& \(aqflik\(aq => \(aq21\(aq, \& \(aqobst\(aq => \(aqMannhein, Germany\(aq, \& \(aqlsup\(aq => \(aq8/16/04 3:20 PM Local Time\(aq, \& \(aqtmp\(aq => \(aq21\(aq, \& \(aqhmid\(aq => \(aq78\(aq, \& \(aqwind\(aq => { \& \(aqgust\(aq => \(aqN/A\(aq, \& \(aqd\(aq => \(aq170\(aq, \& \(aqs\(aq => \(aq11\(aq, \& \(aqt\(aq => \(aqS\(aq \& }, \& \(aqbar\(aq => { \& \(aqr\(aq => \(aq1,010.8\(aq, \& \(aqd\(aq => \(aqsteady\(aq \& }, \& \(aqdewp\(aq => \(aq17\(aq, \& \(aquv\(aq => { \& \(aqt\(aq => \(aqModerate\(aq, \& \(aqi\(aq => \(aq3\(aq \& }, \& \(aqvis\(aq => \(aq10.0\(aq, \& \(aqt\(aq => \(aqMostly Cloudy\(aq \& }, \& \(aqdayf\(aq => { \& \(aqlsup\(aq => \(aq8/16/04 12:17 PM Local Time\(aq, \& \(aqday\(aq => [ \& { \& \(aqhi\(aq => \(aq27\(aq, \& \(aqsuns\(aq => \(aq8:40 PM\(aq, \& \(aqdt\(aq => \(aqAug 16\(aq, \& \(aqpart\(aq => [ \& { \& \(aqhmid\(aq => \(aq57\(aq, \& \(aqwind\(aq => { \& \(aqgust\(aq => \(aqN/A\(aq, \& \(aqd\(aq => \(aq204\(aq, \& \(aqs\(aq => \(aq16\(aq, \& \(aqt\(aq => \(aqSSW\(aq \& }, \& \(aqicon\(aq => \(aq28\(aq, \& \(aqp\(aq => \(aqd\(aq, \& \(aqppcp\(aq => \(aq20\(aq, \& \(aqt\(aq => \(aqMostly Cloudy\(aq \& }, \& { \& \(aqhmid\(aq => \(aq87\(aq, \& \(aqwind\(aq => { \& \(aqgust\(aq => \(aqN/A\(aq, \& \(aqd\(aq => \(aq215\(aq, \& \(aqs\(aq => \(aq13\(aq, \& \(aqt\(aq => \(aqSW\(aq \& }, \& \(aqicon\(aq => \(aq11\(aq, \& \(aqp\(aq => \(aqn\(aq, \& \(aqppcp\(aq => \(aq60\(aq, \& \(aqt\(aq => \(aqShowers\(aq \& } \& ], \& \(aqd\(aq => \(aq0\(aq, \& \(aqsunr\(aq => \(aq6:18 AM\(aq, \& \(aqlow\(aq => \(aq16\(aq, \& \(aqt\(aq => \(aqMonday\(aq \& }, .Ve .PP .Vb 1 \& ... next day ..., .Ve .PP .Vb 1 \& ... and so on ..., .Ve .PP .Vb 29 \& ] \& }, \& \(aqlnks\(aq => { \& \(aqlink\(aq => [ \& { \& \(aql\(aq => \(aqhttp://www.weather.com/outlook/health/allergies/USMS0154?par=xoap\(aq, \& \(aqpos\(aq => \(aq1\(aq, \& \(aqt\(aq => \(aqPollen Reports\(aq \& }, \& { \& \(aql\(aq => \(aqhttp://www.weather.com/outlook/travel/flights/citywx/USMS0154?par=xoap\(aq, \& \(aqpos\(aq => \(aq2\(aq, \& \(aqt\(aq => \(aqAirport Delays\(aq \& }, \& { \& \(aql\(aq => \(aqhttp://www.weather.com/outlook/events/special/result/USMS0154?when=thisweek&par=xoap\(aq, \& \(aqpos\(aq => \(aq3\(aq, \& \(aqt\(aq => \(aqSpecial Events\(aq \& }, \& { \& \(aql\(aq => \(aqhttp://www.weather.com/services/desktop.html?par=xoap\(aq, \& \(aqpos\(aq => \(aq4\(aq, \& \(aqt\(aq => \(aqDownload Desktop Weather\(aq \& } \& ], \& \(aqtype\(aq => \(aqprmo\(aq \& }, \& \(aqver\(aq => \(aq2.0\(aq \& }; .Ve .PP \fIHeader Information Block\fR .IX Subsection "Header Information Block" .PP The hashref \fIhead\fR contains unit of measure definitions for the whole dataset. Usually they are either all metric or all us. .IP "locale" 4 .IX Item "locale" Should always be \fIen_US\fR. Up to now I have not found any possiblity to get other locales. .IP "ut (unit of temperature)" 4 .IX Item "ut (unit of temperature)" Could be \fIC\fR for Celsius or \fIF\fR for Fahrenheit. .IP "us (unit of speed)" 4 .IX Item "us (unit of speed)" Could be \fIkm/h\fR or \fImph\fR. .IP "ud (unit of distance)" 4 .IX Item "ud (unit of distance)" Could be \fIkm\fR or \fImi\fR. .IP "ur (unit of precipitation)" 4 .IX Item "ur (unit of precipitation)" Could be \fImb\fR (millibar) or \fIin\fR. .IP "up (unit of pressure)" 4 .IX Item "up (unit of pressure)" Could be \fImb\fR or \fIin\fR for in Hg. .IP "format (textformat)" 4 .IX Item "format (textformat)" Could be \fI\s-1SHORT\s0\fR, \fI\s-1MEDIUM\s0\fR or \fI\s-1LONG\s0\fR. .PP \fILocation Information Block\fR .IX Subsection "Location Information Block" .PP The hashref \fIloc\fR contains some information about the location that does not change very much each hour or day. .IP "id (location id)" 4 .IX Item "id (location id)" This is the location id as used to get the weather for the location. .IP "dnam (descriptive name)" 4 .IX Item "dnam (descriptive name)" This is a name describing the location, e.g. \fIHeidelberg, Germany\fR. .IP "tm (time)" 4 .IX Item "tm (time)" This is the current local time of the location (if not using cached data). .Sp Time is always presented like \fI8:45 \s-1AM\s0\fR or \fI11:33 \s-1PM\s0\fR. .IP "zone (timezone)" 4 .IX Item "zone (timezone)" This is the timezone. It is presented as time offset from \s-1GMT\s0. .IP "suns (time of sunset)" 4 .IX Item "suns (time of sunset)" .PD 0 .IP "sunr (time of sunrise)" 4 .IX Item "sunr (time of sunrise)" .IP "lat (latitude)" 4 .IX Item "lat (latitude)" .PD The latitude is presented as 2 digit decimal. .IP "lon (longitude)" 4 .IX Item "lon (longitude)" The longitude is presented as 2 digit decimal. .PP \fICurrent Conditions Block\fR .IX Subsection "Current Conditions Block" .PP The hashref \fIcc\fR contains information about the current conditions. .IP "icon" 4 .IX Item "icon" The \s-1SDK\s0 from \fIweather.com\fR contains a set of weather icons. These icons have filenames like \fI28.png\fR. This element is this icon number. .IP "flik (windchill)" 4 .IX Item "flik (windchill)" This is the temperature considering the windchill factor. .IP "obst (observatory)" 4 .IX Item "obst (observatory)" The observatory that reported the weather data. .IP "lsup (last updated)" 4 .IX Item "lsup (last updated)" Date and time when the weather data has been reported. Format is \&\fI8/16/04 6:10 \s-1AM\s0 \s-1EDT\s0\fR. In some cases (e.g. for Heidelberg in Germany) there may be no official timezone identifier but the keyword \fILocal\fR or \fILocal Time\fR. .IP "tmp (temperature)" 4 .IX Item "tmp (temperature)" .PD 0 .IP "hmid (humidity)" 4 .IX Item "hmid (humidity)" .IP "wind" 4 .IX Item "wind" .RS 4 .IP "gust" 8 .IX Item "gust" .PD Maximum gust speed. .IP "d" 8 .IX Item "d" Wind direction in degrees. .IP "t" 8 .IX Item "t" Text description of direction. .IP "s" 8 .IX Item "s" Wind speed .RE .RS 4 .RE .IP "bar (air pressure)" 4 .IX Item "bar (air pressure)" .RS 4 .PD 0 .IP "r (pressure)" 8 .IX Item "r (pressure)" .PD Decimal current pressure. .IP "d (description)" 8 .IX Item "d (description)" Text description of raise or fall of pressure. .RE .RS 4 .RE .IP "dewp" 4 .IX Item "dewp" Integer dew point. .IP "uv (uv index data)" 4 .IX Item "uv (uv index data)" .RS 4 .PD 0 .IP "i" 8 .IX Item "i" .PD Integer index value. .IP "t" 8 .IX Item "t" Text description of value. .RE .RS 4 .RE .IP "vis (decimal visibility)" 4 .IX Item "vis (decimal visibility)" .PD 0 .IP "t" 4 .IX Item "t" .PD Text description of condition. .PP \fIForecasts\fR .IX Subsection "Forecasts" .PP Up to 10 days of forecasts can be found in the hashref \fIdayf\fR. .IP "lsup (last updated)" 4 .IX Item "lsup (last updated)" self explanatory .IP "day" 4 .IX Item "day" \&\fIday\fR contains either a hash containing the forecast for one day or it contains an an array of hashes, one for each day. .RS 4 .IP "dt (date)" 8 .IX Item "dt (date)" The date of the forecasted day. Only name of month and day, e.g. \fIAug 16\fR. .IP "d (number of the day)" 8 .IX Item "d (number of the day)" .PD 0 .IP "t (name of the day)" 8 .IX Item "t (name of the day)" .PD e.g. \fIMonday\fR .IP "hi (highest temperature)" 8 .IX Item "hi (highest temperature)" .PD 0 .IP "low (lowest temperature)" 8 .IX Item "low (lowest temperature)" .IP "suns (time of sunset)" 8 .IX Item "suns (time of sunset)" .IP "sunr (time of sunrise)" 8 .IX Item "sunr (time of sunrise)" .IP "part (block of day part data)" 8 .IX Item "part (block of day part data)" .PD There are always to blocks of day part data. One for the the night and one for the day. .RS 8 .IP "hmid (humidity)" 12 .IX Item "hmid (humidity)" .PD 0 .IP "wind (see current conditions block)" 12 .IX Item "wind (see current conditions block)" .IP "icon (see current conditions block)" 12 .IX Item "icon (see current conditions block)" .IP "p (part of day)" 12 .IX Item "p (part of day)" .PD Maybe \fId\fR for \fIday\fR or \fIn\fR for \fInight\fR. .IP "ppcp (percent chance of precipitation)" 12 .IX Item "ppcp (percent chance of precipitation)" .PD 0 .IP "t (description of conditions)" 12 .IX Item "t (description of conditions)" .RE .RS 8 .RE .RE .RS 4 .RE .PD .PP \fILinks\fR .IX Subsection "Links" .PP The hashref \fIlnks\fR contains some links to other weather information that may be interesting for the chosen location. This will not be explained in further detail here. Just play around with the sample... .SH "SEE ALSO" .IX Header "SEE ALSO" See also Weather::Com::Cached for the cached version of the low level \s-1API\s0. .SH "AUTHOR" .IX Header "AUTHOR" Thomas Schnuecker, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright (C) 2004\-2007 by Thomas Schnuecker .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP The data provided by \fIweather.com\fR and made accessible by this \s-1OO\s0 interface can be used for free under special terms. Please have a look at the application programming guide of \&\fIweather.com\fR (http://www.weather.com/services/xmloap.html)!