WebService::CIA::Source::DBM(3) An interface to a DBM copy of the CIA World Factbook

SYNOPSIS


use WebService::CIA::Source::DBM;
my $source = WebService::CIA::Source::DBM->new({
DBM => 'factbook.dbm',
Mode => 'read'
});

DESCRIPTION

WebService::CIA::Source::DBM is an interface to a pre-compiled DBM copy of the CIA World Factbook.

The module can also be used to make the DBM file, taking data from WebService::CIA::Parser (or WebService::CIA::Source::Web) and inserting it into a DBM.

A script to do this - webservice-cia-makedbm.pl - should be included in this module's distribution.

METHODS

Apart from "new", these methods are normally accessed via a WebService::CIA object.
"new(\%opts)"
This method creates a new WebService::CIA::Source::DBM object. It takes a hashref of options. Valid keys are ``DBM'' and ``Mode''.

DBM is mandatory and should be the location of the DBM file to be used.

Mode is optional and can be either ``read'' or ``readwrite''. It defaults to ``read''.

"value($country_code, $field)"
Retrieve a value from the DBM.

$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>.

$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.)

"all($country_code)"
Returns a hashref of field-value pairs for $country_code or an empty hashref if $country_code isn't in the DBM.
"set($country_code, $data)"
Insert or update data in the DBM.

$country_code should be as described above.

$data is a hashref of the data to store (as Field => Value).

"set" overwrites any data already in the DBM under $country_code.

"dbm()"
Returns a reference to the DBM file in use.

AUTHOR

Ian Malpass ([email protected])

COPYRIGHT

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).