The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

WWW::CIA - information from the CIA World Factbook.

SYNOPSIS

  use WWW::CIA;
  use WWW::CIA::Source::DBM;
  use WWW::CIA::Source::Web;

  # Get data from a pre-compiled DBM file

  my $source = WWW::CIA::Source::DBM->new({ DBM => "factbook.dbm" });
  my $cia = WWW::CIA->new({ Source => $source });
  $fact = $cia->get("uk", "Population");
  print $fact;

  # Get data direct from the CIA World Factbook

  my $source = WWW::CIA::Source::Web->new();
  my $cia = WWW::CIA->new({ Source => $source });
  $fact = $cia->get("uk", "Population");
  print $fact;

DESCRIPTION

A module which gets information from the CIA World Factbook.

METHODS

new(\%opts)

Creates a new WWW::CIA object. Takes a hashref, which must contain a "Source" key whose value is a WWW::CIA::Storage object.

get($country_code, $field)

This method retrieves information from the store.

It takes two arguments: a country code (as defined in FIPS 10-4 on http://www.cia.gov/cia/publications/factbook/appendix/appendix-d.html, e.g. "uk", "us") and a field name (as defined in http://www.cia.gov/cia/publications/factbook/docs/notesanddefs.html, e.g. "Population", "Agriculture - products"). (WWW::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.)

The field name is very case and punctuation sensitive.

It returns the value of the field, or undef if the field or country isn't in the store.

Note that when using WWW::CIA::Store::Web, get will also return undef if there is an error getting the page.

get_hashref(\@countries, \@fields)

This method takes two arguments: an arrayref of country codes and an arrayref of field names.

It returns a hashref of the form

  {
   'country1' => {
                  'field1' => 'value',
                  'field2' => 'value'
                 },
   'country2' => {
                  'field1' => 'value',
                  'field2' => 'value'
                 }
  }
get_all_hashref(\@countries)

Get all the fields available for countries.

It takes one argument, an arrayref of country codes.

It returns a hashref similar to the one from get_hashref above, containing all the fields available for each country.

AUTHOR

Ian Malpass (ian@indecorous.com)

COPYRIGHT

Copyright 2003, 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 (http://www.cia.gov/cia/publications/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).

SEE ALSO

WWW::CIA::Parser, WWW::CIA::Source::DBM, WWW::CIA::Source::Web