You don't need to load this module yourself in most cases. Business::ISBN will load it when it loads. You
must use Business::ISBN 3.005 or later because the data structure changed slightly to fix a bug with
ISBN13 prefixes.
These data are generated from the RangeMessage.xml file provided by the ISBN Agency. The distributed
version matches the date in the version for this module. You can retrieve this yourself at
<https://www.isbn-international.org/range_file_generation>. This file is included as part of the
distribution and should be installed at ~lib/Business/ISBN/Data/RangeMessage.xml.
If you want to use a different RangeMessage.xml file, you can set the "ISBN_RANGE_MESSAGE" environment
variable to the alternate location before you load "Business::ISBN". This way, you can use the latest (or
even earlier) data without having to install something new or wait for an update to this module.
If the default RangeMessage.xml or your alternate one is not available, the module falls back to data
included in Data.pm. However, that data are likely to be older. If it does not find that file, it looks
for RangeMessage.xml in the current directory.
The data are in %Business::ISBN::country_data (although the "country" part is historical). If you want to
see where the data are from, check $Business::ISBN::country_data{_source}.
Packagingthismodule
The included RangeMessage.xml is in under lib/ at the same level as Data.pm. The same data exist as the
default data in the code, so you don't need to pass along the distributed RangeMessage.xml. However, you
can include a newer RangeMessage.xml.
With PAR, you can add extra files to the archive with "-a". Put the new file somewhere the module will
find it (or use "ISBN_RANGE_MESSAGE" to lead it there):
pp ... -a '..../RangeMessage.xml;RangeMessage.xml'
If you put the RangeMessage.xml in the current working directory of the application, the module should
find it.
Updatingthedefaultdata
In the repo, find the examples/make_default_data.pl program. Run that against the latest
RangeMessage.xml:
% perl -Ilib examples/make_default_data.pl RangeMessage.xml
That produces the code you need to replace in the module. Check that that data aren't weird: sometimes
the group names have errors or oddities. The program handles escaping single quotes and trimming white
space.