Revision history for Perl CPAN module Locale::SubCountry 2.07 23 Oct 2021 Added Kosovo https://laendercode.net/en/2-letter-code/xk, RT bug #139734 Updated to latest codes from: https://salsa.debian.org/iso-codes-team/ 2.06 12 Jul 2019 Used latest iso-codes package from Debian Salsa 2.05 6 Apr 2019 Used latest iso-codes package from Debian Salsa 2.04 29 Dec 2017 Added strict and warnings pragmas to Codes.pm as per github request by manwar 2.03 27 Dec 2017 Updated to alioth.debian.org codes 3.77 (Dec 2017) 2.02 7 Mar 2017 Fixed RT bug #120002, name space pollution Updated to alioth.debian.org codes 3.74 (Jan 2017) 2.01 15 Aug 2016 Added country's numeric code, accessed from the country_number method Added 'levels' method, return all level types and their totals in a sub country Added JSON to dependency, fix for RT bug #116926, 2.00 11 Aug 2016 Sourced ISO codes from alioth.debian.org in JSON format, Many French Metropolitan departments and Italian provinces added Renamed SubCountry/Data.pm to Codes.pm 'category' method renamed to 'level', as it reflects a sub country's size removed FIPS10_4_code and ISO3166_2_code methods as FIPS is deprecated removed regional_division method, info no longer available from new source data Improved documentation 1.66 23 Jul 2016 Github integration Improved documentation Updated France, all regions reorganised in January 2016 Updated Italy, all regions reorganised in January 2015 Distrito Federal renamed to Ciudad de México, in Mexico 1.65 25 Apr 2016 Fixed #110905, wrong code for Sulawesi Barat 1.64 7 Apr 2015 Suppressed warnings on printing wide characters in demo.pl removed indirect object notation for 'new' method Fixed #100617, several typos 1.63 9 Apr 2014 Check that a country has sub countries before searching for code and full name, fix for RT bug 89706 Remove minuimum versions for utf8 and strict modules, fix for RT bug 92587 1.62 23 Jul 2013 Removed POD utf encoding directive from SubCountry.pm again and removed utf8 characters from the POD section. They are still causing errors on selected platforms and versions of Perl. Replaced with ASCII text. Fix for RT bug 71228 1.61 15 Feb 2013 Small correction for German data Replaced POD utf encoding directive in SubCountry.pm as some accented characters occur in the POD 1.60 13 Feb 2013 NOTE: On September 2, 2008, FIPS 10-4 was one of ten standards withdrawn by NIST as a Federal Information Processing Standard. FIPS data will remain in this module for now. I may need to withdraw it if it becomes too difficult to align FIPS data with updates to ISO data Added FIPS data to several countries Added Communities to Spain Added Italian regions Allowed for blank lines within subcountry XML data Added FIPS codes to many countries Removed POD utf encoding directive from SubCountry.pm (only needed in Data.pm), fix for RT bug 82933 1.59 22 Jan 2013 Added $VERSION variable into the Locale::SubCountry::World package 1.58 22 Jan 2013 Added '=encoding utf8' to Data.pm to allow POD formatters to work Changed minimimum required version of Test::Pod and Test::Pod::Coverage to 1.04, fix for RT bug 82717 1.57 14 Jan 2013 Moved declaration of $VERSION into the Locale::SubCountry package, fix for RT bug 79734 1.56 7 July 2012 Removed use of $ENV{AUTHOR_TESTING} for running POD tests, caused problems for CPAN testers 1.55 5 July 2012 Fixed xml tagging in Macedonian data, fix for RT bug 78157 Minor updates to data Use $ENV{AUTHOR_TESTING} for running POD tests, fix for RT bug 78123 Print message to STDERR (via call to die) on badly formed country and sub country data Thanks to Ron Savage for the following: Use Test::More everywhere rather than Test::Simple sometimes. Add t/test.t. Clean up pre-reqs in Makefile.PL Add Build.PL. Add encoding to POD in Locale::SubCountry 1.51 2 July 2012 Many new countries added, thanks to Ron Savage Sub countries added to existing countries Many corrections to sub country data Changed to all lower case for the spelling of 'and', 'of' 'the' etc that may occur in names Added 'use utf8' to main.t 1.50 18 Apr 2012 Added Makefile.PL back to the distribution set 1.49 18 Apr 2012 Fixed errors in XML coding Fixed the Brazilian state Rondônia, fix for RT bug 73830 Added 3 new Indonesian provinces, fix for RT bug 74763 Added 'use utf8' to Data.pm, fix for RT bug 73829 Added Metro Manila in Philippines, fixed some other provinces, fix for RT bug 69678 1.48 17 Apr 2012 Added South Sudan as a new country Removed states from Sudan Added New Caledonia, Palau, San Marino, Guernsey, Jersey, Saint Martin, Saint Barthélemy, Sint Maarten, Isle Of Man 1.47 29 Apr 2011 Converted tests to use Test::Simple in main.t Added test for regional_division Added test for initialising with 2 letter country code Improved synopsis Fixed typo in 'new' method that was stopping the use of 2 letter country codes being used as a parameter. Note, this also caused a faliure in the tests for the dependant module, Lingua::EN::AddressParse 1.46 6 Apr 2011 Fixed main.t so tests now use title cased country names. Corrected typos in Changes, README, SubCountry.pm demo.pl, thanks to Glenn Fowler 1.45 5 Apr 2011 Corrected FIPS codes for Repbulic or Ireland and other countries, thanks to Michele Ongaro Added data for Montenegro as a separate country Added data for Serbia as a separate country Added Hong Kong and it's districts (it also appears as a region of China) Corrections to documentation Country names are now stored in title case, not all capitals, as in Fiji and not FIJI. This was done to improve readability (original ISO date used upper case) NOTE, this means that when calling the new method with a country name, you need to specify the name in title case. It will not work if you use upper case. This could cause some backward compatibility issues from your calling code. 1.44 20 Jan 2011 Moved Locale::SubCountryData to Locale::SubCountry::Data name space Added use struct and use warnings Moved all global variables to the Locale::SubCountry name space 1.43 14 Jan 2011 Fixed the number of tests in main.t, should be 17, not 15 1.42 13 Jan 2011 Changed name of UK region St. Helens to Saint Helens, fix for RT bug 38599 Fixed FIPS codes for UK regions Stafforshire and Saint Helens Removed trailing blanks, fix for RT bug 38597 Changed encoding of XML data to UTF-8, thanks to Benjamin Erhart. Fix for RT bug 38559 Moved XML data to separate package, Locale::SubCountry::Data and encoded this file as UTF-8 Added additional tests for unknown sub country codes and names 1.41 20 Apr 2008 Added FIPS codes for UK, thanks to TJMATHER for patch, RT bug #32899 1.40 12 Jan 2008 Changed regexp match on XML country field to account for both Unix and MSDOS line endings Converted files to Unix line endings 1.39 6 Jan 2008 Allowed for sub countries with no ISO code, such as Shariff Kabunsuan in the Phillipines Thanks to Matt Loschert for pointing this out. 1.38 26 Nov 2006 Changed sub country names in Sudan and Phillipines Added examples/demo.pl 1.37 02 Apr 2006 Removed invalid characters in data for Iran, United Arab Emirates and Oman Removed alternate names (appended to end of main names in brackets) from many sub countries NOTE: new method now issues warning and returns undef if invalid country code or name parameter is passed. Previous versions died inside the new method. 1.36 11 Jul 2005 Added regions for Andorra Added regions for Grenada Updated distribution to current CPAN requirements 1.35 04 Jul 2005 Fixed problem with name space pollution for $VERSION variable Added data for the following countries Antigua and Barbuda Andorra Aruba Bhutan Nauru Seychelles For Cape Verde, changed Calheta de São Miguel to São Miguel For Venezuela, changed Distrito Federal to Distrito Capital Added districts for Honduras 1.34 17 Apr 2004 Fixed typo in XML data for American Samoa Added 'has_sub_countries' method to determine if a country has any sub countries (some such a Singapore do not). Updated synopsis to show it's use. 1.33 13 Feb 2004 Fixed pattern matching in data loader to allow for accented characters 1.32 13 Feb 2004 Added 'use locale' to main.t to stop 'make test' errors 1.31 12 Feb 2004 Moved XML data back into main module. Corrected documentation 1.30 8 Feb 2004 Completely updated data, many new countries and sub countries added Added countries without sub countries, such as Singapore Stored data in separate file in XML format Added method 'category' to return the type of subcountry such as state, city etc NOTE: this replaces the 'sub_country_type' method Added method 'regional_division' to return the regional_division of subcountry such as SCT (Scotland) for Edinburgh 1.23 16 Jul 2003 Added data for Finland and Singapore, thanks to Chris McKay 1.22 18 Jan 2003 Removed use of $_ in initialization code, as suggested by Ilya Martynov Corrected country code for Iran, thanks to Todd A. Green Removed Exporter references, as suggested by TJ Mather Added Timor-Leste as a new country (East Timor) Changed Canadian province of Newfoundland to Newfoundland and Labrador 1.21 9 Sep 2002 Fixed bug in test script main.t 1.20 7 Sep 2002 Added methods to new Locale::SubCountry::World package - new - all_full_names - all_codes - full_name_code_hash - code_full_name_hash NOTE! all_full_names method replaces the stand alone all_country_names function all_codes method replaces the stand alone all_country_codes function The above method names duplicate existing method names (polymorphism), so make sure you are working with the right type of object first. These changes were necessary because of user requests for country name and code look ups prior to sub-country lookups. Previous versions would not work with Locale::Country because of a clash in exported names. Thanks to Todd Green for this suggestion. Added the FIPS 10-4 (US standard) for many sub countries Added FIPS10_4_code method Added ISO3166_2_code method Added many corrections to sub country names Thanks to TJ Mather for adding FIPS codes and fixing other data errors Added extra tests to main.t Prefixed internal data structure elements with a dash, to follow OO convention 1.11 23 Mar 2002 Corrected codes for Corsica, France, thanks to Mathias Herberts 1.10 04 Jan 2002 Replaced INIT block with anonymous subroutine. This removed problems that occurred when mod_perl or eval statements were used. 1.09 25 Jul 2001 Added code for US, West Virginia (WV), thanks to Michelle Agnew 1.08 16 Mar 2001 Made many corrections to country data to align it with ISO:3166-2 standard Defined sub country types for all countries Added information for Israel and Albania Removed some MS-DOS line terminators that were generating warnings Added two more tests to main.t 1.07 12 Mar 2001 Corrected errors in German sub countries thanks to Lars Steubesand Corrected errors in data for Austria, Poland, Romania, Turkey, Germany and Columbia. Thanks to Philip Newton. 1.06 20 Feb 2001 Allowed countries to be specified by either full name or two letter code Made country names compatible with ISO 3166-1 standard Added country_code method to retrieve ISO code for current object Added all_country_codes method to retrieve ISO codes for all countries Corrected abbreviation for Canadian province of Nunavut Thanks to Trevor Schellhorn for these suggestions Corrected two Belgium sub countries. Thanks to Wim Verhaegen 1.05 15 Oct 2000 sub_country_type method returns 'unknown' when no data defined Fixed bug in mismatch count in main.t test module 1.04 04 Oct 2000 Added all remaining countries, thanks to Alastair McKinstry Included sub country type (state, county etc) in lookup data Added country and sub_country_type methods Accounted for sub country codes of 0 1.03 20 Aug 2000 Added many more countries, thanks to Alastair McKinstry Now account for any incorrect capitalization of sub country names _clean subroutine only removes dots and spaces, dashes are now allowed Added subroutine to return array of countries that have lookup data Added test in main.t to convert all codes to names and back again Allowed for leading or trailing white space in __DATA__ entries 1.02 14 May 2000 Added Canadian province of Nunavut, thanks to Steve Taylor 1.01 25 Apr 2000 To follow the approach of ISO 3166-2 - renamed module from RegionAbbrev to SubCountry - replaced all references to 'abbreviation' with 'code' Improved regexes in _clean, thanks to Mark Summerfield Replaced regexp with hash lookup for valid countries Accepted all forms of upper/lower case in country name 1.00 8 Apr 2000 First Release