I would like to propose that Locale-Codes be removed from the core modules.
Locale-Codes takes a list of "codes" from various internet standards and
basically serves as an indexer/translator of them. For example, it
understands that in the ISO 3166 standard, the code 'jp' stands for Japan.
As expected, these standards are constantly changing. Not a lot... but
enough that if you truly want accurate results, you have to make stay on
top of them.
Since none of the standards have a programatic interface (at least not a
free one) I can't write a function that says 'go look up value XXX in
standard YYY'. As a result, the Locale-Codes module actually contains
snapshots of data included in the standards.
As a result, the Locale-Codes modules become out-of-date over time
(slowly if you're only using codes that have been used for extended
periods of time; rapidly if you need to refer to the very newest codes).
Because of the nature of how perl is released, Locale-Codes is no longer
updated once a release enters code freeze, and as a result, it's
out-of-date before it's even released. Even worse, if you are using any
version of perl other than the absolute newest, Locale-Codes is
significantly out-of-date.
The upshot of all of this is that I would say that if you want to use
Locale-Codes, you absolutely must ignore the version that came with perl
and use the newest version instead.
Given that, I do not believe that it is appropriate that Locale-Codes be
included as a core module.
It was included before I took over maintenance, so I do not know the
history of why it was included. However, at this point, no other core
module depends on it as far as I can tell, so it should be relatively
easy to remove (with a deprecation cycle of course).
I'll continue to support it indefinitely, and I'll continue to submit
patches as long as it is a core module of course.
Locale-Codes takes a list of "codes" from various internet standards and
basically serves as an indexer/translator of them. For example, it
understands that in the ISO 3166 standard, the code 'jp' stands for Japan.
As expected, these standards are constantly changing. Not a lot... but
enough that if you truly want accurate results, you have to make stay on
top of them.
Since none of the standards have a programatic interface (at least not a
free one) I can't write a function that says 'go look up value XXX in
standard YYY'. As a result, the Locale-Codes module actually contains
snapshots of data included in the standards.
As a result, the Locale-Codes modules become out-of-date over time
(slowly if you're only using codes that have been used for extended
periods of time; rapidly if you need to refer to the very newest codes).
Because of the nature of how perl is released, Locale-Codes is no longer
updated once a release enters code freeze, and as a result, it's
out-of-date before it's even released. Even worse, if you are using any
version of perl other than the absolute newest, Locale-Codes is
significantly out-of-date.
The upshot of all of this is that I would say that if you want to use
Locale-Codes, you absolutely must ignore the version that came with perl
and use the newest version instead.
Given that, I do not believe that it is appropriate that Locale-Codes be
included as a core module.
It was included before I took over maintenance, so I do not know the
history of why it was included. However, at this point, no other core
module depends on it as far as I can tell, so it should be relatively
easy to remove (with a deprecation cycle of course).
I'll continue to support it indefinitely, and I'll continue to submit
patches as long as it is a core module of course.