manpagez: man pages & more
man Business::ISBN::Data(3)
Home | html | info | man
Business::ISBN::Data(3)                    User Contributed Perl Documentation


NAME

     Business::ISBN::Data - data pack for Business::ISBN


SYNOPSIS

     see Business::ISBN


DESCRIPTION

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

   Packaging this module
     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.

   Updating the default data
     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.


SOURCE AVAILABILITY

     This module lives in a Github repository:

             https://github.com/briandfoy/business-isbn-data

     You are probably also interested in the module that uses it:

             https://github.com/briandfoy/business-isbn

     If you have something to add, create a fork on Github and send a pull
     request.


AUTHOR

     brian d foy, "<briandfoy@pobox.com>"

     Yakov Shafranovich updated the data in October 2008.

     Daniel Jakubik updated the data in July 2012.

     Markus Spann suggested looking for RangeMessage.xml in the current
     directory to make it work with Perl app bundlers.

     Josef Moravec "<josef.moravec@gmail.com>" updated the data in January
     2019.

     Peter Williams fixed a serious issue with ISBN-13 (GitHub #5). You must
     use Business::ISBN 3.005 or later because the data structure changed.


COPYRIGHT AND LICENSE

     Copyright (C) 2002-2026, brian d foy <briandfoy@pobox.com>. All rights
     reserved.

     You may redistribute this under the terms of the Artistic License 2.0.

perl v5.34.3                      2026-10-17           Business::ISBN::Data(3)

business-isbn-data 20261016.1.0 - Generated Tue Oct 20 16:13:24 CDT 2026
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.