Busines...N::Data(3)
πΈ NAME πΈ
okay so this is the Busines...N::Data(3) page, straight outta User Contributed Perl Documentation π and the main character is Business::ISBN::Data β itβs the data pack for Business::ISBN. periodt β¨
β¨ SYNOPSIS β¨
literally just: see Business::ISBN π«Ά
π DESCRIPTION π
okay bestie, most of the time you do not need to load this module yourself. 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. no cap, that version matters π
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. slay π
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. highkey iconic behavior π¦
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. heads up, bestie π«Ά
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}. iykyk π
π¦ Packaging this module π
The included RangeMessage.xml is 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. lowkey convenient π
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. cute π
π 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. no cap, verify your weird little group names ππ
π 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. periodt π β¨
π 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.xmlin 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::ISBN3.005or later because the data structure changed. π₯
π COPYRIGHT AND LICENSE π
Copyright Β© 2002-2026, brian d foy <briandfoy@pobox.com>. All rights reserved.
You may redistribute this under the terms of the Artistic License 2.0.
this page came from perl v5.32.1, dated 2026-04-17 β mwah πβ¨
π¦ where this page comes from
- epel 9: perl-Business-ISBN-Data 20260416.001-1.el9 Β· Artistic-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms