WebService::CIA::Source::Web - An interface to the online CIA World Factbook
use WebService::CIA::Source::Web; my $source = WebService::CIA::Source::DBM->new();
WebService::CIA::Source::Web is an interface to the live, online version of the CIA World Factbook.
It's a very slow way of doing things, but requires no pre-compiled DBM. It's more likely to be useful for proving concepts or testing.
Apart from new, these methods are normally accessed via a WebService::CIA object.
new
new( \%opts )
my $source = WebService::CIA::Source::Web->new(); $source = WebService::CIA::Source::Web->new( { user_agent => $ua } );
This method creates a new WebService::CIA::Source::Web object. It takes an optional hashref of arguments.
user_agent
A user agent object to use. This must implement the same user interface as LWP::UserAgent (or, at least, a get() method).
LWP::UserAgent
get()
value($country_code, $field)
Retrieve a value from the web.
$country_code should be the FIPS 10-4 country code as defined in https://www.cia.gov/library/publications/the-world-factbook/appendix/appendix-d.html.
$country_code
$field should be the name of the field whose value you want to retrieve, as defined in https://www.cia.gov/library/publications/the-world-factbook/docs/notesanddefs.html. (WebService::CIA::Parser also creates four extra fields: "URL", "URL - Print", "URL - Flag", and "URL - Map" which are the URLs of the country's Factbook page, the printable version of that page, a GIF map of the country, and a GIF flag of the country respectively.)
$field
value will return undef if the country or field cannot be found, or if there is an error GETing the page. This isn't ideal, but I can't think of the best way around it right now.
value
undef
all($country_code)
Returns a hashref of field-value pairs for $country_code or an empty hashref if $country_code isn't available from the Factbook.
get($country_code)
Retrieve and cache the data for a country.
Returns 1 if successful, 0 if not.
cached($country_code)
Get/set the country code whose data is cached.
cache($hashref)
Get/set a hashref of data for the current country.
parser()
Returns a reference to the WebService::CIA::Parser object being used.
ua( $userAgent )
Returns a reference to the user agent object being used. By default this is an LWP::UserAgent object, but you can pass a different object in if you wish.
last_response()
Returns the HTTP::Response object from the last request.
HTTP::Response
In order to make some small improvement in efficiency, WebService::CIA::Source::Web keeps a copy of the data for the last country downloaded in memory.
Ian Malpass (ian-cpan@indecorous.com)
Copyright 2003-2007, Ian Malpass
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The CIA World Factbook's copyright information page (https://www.cia.gov/library/publications/the-world-factbook/docs/contributor_copyright.html) states:
The Factbook is in the public domain. Accordingly, it may be copied freely without permission of the Central Intelligence Agency (CIA).
WebService::CIA, WebService::CIA::Parser, WebService::CIA::Source::DBM
To install WebService::CIA, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::CIA
CPAN shell
perl -MCPAN -e shell install WebService::CIA
For more information on module installation, please visit the detailed CPAN module installation guide.