This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Unicode::UCD: Allow internal properties in invmap()
authorKarl Williamson <khw@cpan.org>
Sat, 19 Jul 2014 17:35:34 +0000 (11:35 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 22 Jan 2015 05:47:28 +0000 (22:47 -0700)
This adds an undocumented way to get invmap() to return internal
properties, like invlist().  This is intended only for Perl-core
use.

charclass_invlists.h
lib/Unicode/UCD.pm

index e062364..6b429dd 100644 (file)
@@ -50101,7 +50101,7 @@ static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
 #endif /* EBCDIC POSIX-BC */
 
 /* Generated from:
- * f73caff74501bae2ce27f4c8f11d2af455cb32ee68b66c86e7b75ab2bfc8b3af lib/Unicode/UCD.pm
+ * 212bfdee5ea2a2aa387ea61db6b172ca701babf66a7ce8ade875c20de176f9a1 lib/Unicode/UCD.pm
  * 827aa7ee45ca9fe09f3e0969a5a27a69ce58a6c7134548125266210018d27b49 lib/unicore/ArabicShaping.txt
  * 3748fbbe9d280a9da700bfd0c28beaaf6f32a67ec263a124fcb0a4095a30fae5 lib/unicore/BidiBrackets.txt
  * 3925329c2432fa7248b2e180cddcedb9a4f9eafbbb10ab9e105eaf833043b2fb lib/unicore/BidiMirroring.txt
index 1eddc09..f3d5541 100644 (file)
@@ -2824,15 +2824,21 @@ our @algorithmic_named_code_points;
 our $HANGUL_BEGIN;
 our $HANGUL_COUNT;
 
-sub prop_invmap ($) {
+sub prop_invmap ($;$) {
 
     croak __PACKAGE__, "::prop_invmap: must be called in list context" unless wantarray;
 
     my $prop = $_[0];
     return unless defined $prop;
 
+    # Undocumented way to get at Perl internal properties; it may be changed
+    # or removed without notice at any time.  It currently also changes the
+    # output to use the format specified in the file rather than the one we
+    # normally compute and return
+    my $internal_ok = defined $_[1] && $_[1] eq '_perl_core_internal_ok';
+
     # Fail internal properties
-    return if $prop =~ /^_/;
+    return if $prop =~ /^_/ && ! $internal_ok;
 
     # The values returned by this function.
     my (@invlist, @invmap, $format, $missing);