Skip Menu |
Report information
Id: 128219
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: jim.avera [at]

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)

Date: Mon, 23 May 2016 01:02:37 -0700 (PDT)
To: perlbug [...]
From: jim.avera [...]
Subject: Seemingly-contradictory documentation in perlrecharclass
Download (untitled) / with headers
text/plain 12.5k
This is a bug report for perl from, generated with the help of perlbug 1.40 running under perl 5.22.1. ----------------------------------------------------------------- Hi there, I've been studying up on Unicode and am confused by what the documentation of \p{Alpha} in perlrecharclas. It seems to give contradictory definitions in different places: In perlrecharclass in the bracketed-charclass section, it says: One counterpart, in the column labelled "ASCII-range Unicode" in the table, matches only characters in the ASCII character set. The other counterpart, in the column labelled "Full-range Unicode", matches any appropriate characters in the full Unicode character set. For example, "\p{Alpha}" matches not just the ASCII alphabetic... [[:...:]] ASCII-range Full-range backslash Note Unicode Unicode sequence ----------------------------------------------------- alpha \p{PosixAlpha} \p{XPosixAlpha} But then after the table, below the footnotes, it says: There are various other synonyms that can be used besides the names listed in the table. For example, "\p{PosixAlpha}" can be written as "\p{Alpha}". All are listed in "Properties accessible through \p{} and \P{}" in perluniprops. These can't be both true. \p{PosixAlpha} appears in the "ASCII-range" column of the table, so it can't be equivalent to \p{Alpha} if \p{Alpha} can match beyond the ASCII range. Could someone clarify what is the truth (and fix the docs accordingly)? ----------------------------------------------------------------- --- Flags: category=docs severity=medium --- Site configuration information for perl 5.22.1: Configured by Debian Project at Sun Mar 13 11:54:18 UTC 2016. Summary of my perl5 (revision 5 version 22 subversion 1) configuration: Platform: osname=linux, osvers=3.16.0, archname=x86_64-linux-gnu-thread-multi uname='linux localhost 3.16.0 #1 smp debian 3.16.0 x86_64 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dcc=x86_64-linux-gnu-gcc -Dcpp=x86_64-linux-gnu-cpp -Dld=x86_64-linux-gnu-gcc -Dccflags=-DDEBIAN -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Dldflags= -Wl,-Bsymbolic-functions -Wl,-z,relro -Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.22 -Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.22 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.22 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.22.1 -Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.22.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimiz e=-O2 -dEs -Duseshrplib' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='x86_64-linux-gnu-gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2 -g', cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='5.3.1 20160311', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678, doublekind=3 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16, longdblkind=3 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='x86_64-linux-gnu-gcc', ldflags =' -fstack-protector-strong -L/usr/local/lib' libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt, so=so, useshrplib=true, gnulibc_version='2.21' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector-strong' Locally applied patches: DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN. DEBPKG:debian/db_file_ver - Remove overly restrictive DB_File version check. DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information. DEBPKG:debian/enc2xs_inc - Tweak enc2xs to follow symlinks and ignore missing @INC directories. DEBPKG:debian/errno_ver - Remove Errno version check due to upgrade problems with long-running processes. DEBPKG:debian/libperl_embed_doc - Note that libperl-dev package is required for embedded linking DEBPKG:fixes/respect_umask - Respect umask during installation DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories DEBPKG:debian/extutils_set_libperl_path - EU:MM: set location of libperl.a under /usr/lib DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets. DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor. DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy. DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable. DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian DEBPKG:debian/prune_libs - Prune the list of libraries wanted to what we actually need. DEBPKG:fixes/net_smtp_docs - [ #36038] Document the Net::SMTP 'Port' option DEBPKG:debian/perlivp - Make perlivp skip include directories in /usr/local DEBPKG:debian/deprecate-with-apt - Point users to Debian packages of deprecated core modules DEBPKG:debian/squelch-locale-warnings - Squelch locale warnings in Debian package maintainer scripts DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository DEBPKG:debian/patchlevel - List packaged patches for 5.22.1-9 in patchlevel.h DEBPKG:debian/skip-kfreebsd-crash - [perl #96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD DEBPKG:fixes/document_makemaker_ccflags - [ #68613] Document that CCFLAGS should include $Config{ccflags} DEBPKG:debian/find_html2text - Configure CPAN::Distribution with correct name of html2text DEBPKG:debian/perl5db-x-terminal-emulator.patch - Invoke x-terminal-emulator rather than xterm in DEBPKG:debian/cpan-missing-site-dirs - Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable DEBPKG:fixes/memoize_storable_nstore - [ #77790] Memoize::Storable: respect 'nstore' option not respected DEBPKG:debian/regen-skip - Skip a regeneration check in unrelated git repositories DEBPKG:debian/makemaker-pasthru - Pass LD settings through to subdirectories DEBPKG:fixes/pod_man_reproducible_date - Support POD_MAN_DATE in Pod::Man for the left-hand footer DEBPKG:debian/locale-robustness - [perl #124310] Make t/run/locale.t survive missing locales masked by LC_ALL DEBPKG:fixes/podman-utc - Make the embedded date from Pod::Man reproducible DEBPKG:fixes/podman-utc-docs - Documentation and test suite updates for UTC fix DEBPKG:fixes/podman-empty-date - Support an empty POD_MAN_DATE environment variable DEBPKG:fixes/podman-pipe - Better errors for man pages from standard input DEBPKG:debian/pod2man-customized - Update porting/customized.dat for pod2man modifications DEBPKG:debian/makemaker-manext - Make EU::MakeMaker honour MANnEXT settings in generated manpage headers DEBPKG:debian/makemaker_customized - Update t/porting/customized.dat for files patched in Debian DEBPKG:debian/do-not-record-build-date - [6baa8db] [perl #125830] Allow overriding the compile time in "perl -V" output DEBPKG:fixes/podman-source-date-epoch - Make Pod::Man honor the SOURCE_DATE_EPOCH environment variable DEBPKG:fixes/podman-source-date-epoch-cleanups - Coding style and documentation for SOURCE_EPOCH_DATE DEBPKG:fixes/podman-source-date-epoch-testfix - Guard for building with SOURCE_DATE_EPOCH or POD_MAN_DATE set DEBPKG:debian/devel-ppport-reproducibility - Sort the list of XS code files when generating RealPPPort.xs DEBPKG:fixes/encode-unicode-bom - [ #107043] Address DEBPKG:debian/encode-unicode-bom-doc - Document Debian backport of Encode::Unicode fix DEBPKG:debian/kfreebsd-softupdates - Work around Debian Bug#796798 DEBPKG:fixes/autodie-scope - Fix a scoping issue with "no autodie" and the "system" sub DEBPKG:debian/debugperl-compat-fix - [perl #127212] Disable PERL_TRACK_MEMPOOL for debugging builds DEBPKG:fixes/CVE-2015-8607_file_spec_taint_fix - [perl #126862] ensure File::Spec::canonpath() preserves taint DEBPKG:fixes/mkstemp-umask - [perl #127322] [e57270b] Fix umask for mkstemp(3) calls DEBPKG:fixes/crosscompile-no-targethost - [perl #127234] Fix the Configure escape with usecrosscompile but no targethost DEBPKG:fixes/podlators-no-encode - [ #111156] Degrade gracefully if utf8 is requested but Encode is not available DEBPKG:debian/cross-time-hires - [ #111391] Add an environment variable to skip running configuration probes DEBPKG:fixes/encode-unicode-pod - Fix POD error DEBPKG:fixes/memoize-pod - [ #89441] Fix POD errors in Memoize DEBPKG:fixes/ok-pod - Added encoding for pod. DEBPKG:fixes/CVE-2016-2381_duplicate_env - remove duplicate environment variables from environ --- @INC for perl 5.22.1: /home/jima/perl5/lib/perl5/5.22.1/x86_64-linux-gnu-thread-multi /home/jima/perl5/lib/perl5/5.22.1 /home/jima/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/jima/perl5/lib/perl5 /home/jima/lib/perl /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base . --- Environment for perl 5.22.1: HOME=/home/jima LANG=en_US.UTF-8 LANGUAGE=en_US LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/jima/perl5/perlbrew/bin:/home/jima/perl5/bin:/home/jima/bin:/home/jima/jima_tools/x86_64/bin:/home/jima/jima_tools/bin:/opt/Adobe/Reader9/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/X11:/usr/local/sbin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:. PERL5LIB=/home/jima/perl5/lib/perl5:/home/jima/lib/perl PERLBREW_BASHRC_VERSION=0.75 PERLBREW_HOME=/home/jima/.perlbrew PERLBREW_ROOT=/home/jima/perl5/perlbrew PERL_BADLANG (unset) PERL_LOCAL_LIB_ROOT=/home/jima/perl5 PERL_MB_OPT=--install_base "/home/jima/perl5" PERL_MM_OPT=INSTALL_BASE=/home/jima/perl5 SHELL=/bin/bash
RT-Send-CC: perl5-porters [...]
Download (untitled) / with headers
text/plain 195b
Thanks for spotting this. Now fixed by 4cb26c52ed90189e6e3564a4654b869fe4c4d3e6 It is a typo. The 'X' was missing. FWIW, looking at perluniprops shows the correct mappings. -- Karl Williamson
Download (untitled) / with headers
text/plain 313b
Thank you for filing this report. You have helped make Perl better. With the release today of Perl 5.26.0, this and 210 other issues have been resolved. Perl 5.26.0 may be downloaded via: If you find that the problem persists, feel free to reopen this ticket.

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at