develooper Front page | perl.perl5.porters | Postings from September 2000

[ID 20000912.009] perlunicode.pod still mentions tr///CU

Thread Previous | Thread Next
From:
Nick Clark
Date:
September 12, 2000 14:50
Subject:
[ID 20000912.009] perlunicode.pod still mentions tr///CU
Message ID:
E13YxwU-000DDQ-00@plum.flirble.org
This is a bug report for perl from nick@bagpuss.unfortu.net,
generated with the help of perlbug 1.32 running under perl v5.7.0.


-----------------------------------------------------------------
[Please enter your report here]

man perlunicode says:

       ยท   The `tr///' operator translates characters instead of
           bytes.  It can also be forced to translate between
           8-bit codes and UTF-8.  For instance, if you know your
           input in Latin-1, you can say:

2000-08-01                 perl v5.7.0                          3

PERLUNICODE(1)   Perl Programmers Reference Guide  PERLUNICODE(1)

               while (<>) {
                   tr/\0-\xff//CU;         # latin1 char to utf8
                   ...
               }

           Similarly you could translate your output with

               tr/\0-\x{ff}//UC;           # utf8 to latin1 char

           No, `s///' doesn't take /U or /C (yet?).


Cribbing the wording from perldelta.pod suggests the following patch.
Should "work in progress on improved interfaces" (the Encode.pm work that
prompted me to read this man page to try to get my head around the confusion)
be mentioned, or is that implicit in the
WARNING: The implementation of Unicode support in Perl is incomplete.
at the top?

Nicholas Clark

--- perlunicode.pod.orig        Tue Aug  1 03:32:06 2000
+++ perlunicode.pod     Tue Sep 12 22:37:20 2000
@@ -157,20 +157,9 @@
 
 =item *
 
-The C<tr///> operator translates characters instead of bytes.  It can also
-be forced to translate between 8-bit codes and UTF-8.  For instance, if you
-know your input in Latin-1, you can say:
-
-    while (<>) {
-       tr/\0-\xff//CU;         # latin1 char to utf8
-       ...
-    }
-
-Similarly you could translate your output with
-
-    tr/\0-\x{ff}//UC;          # utf8 to latin1 char
-
-No, C<s///> doesn't take /U or /C (yet?).
+The C<tr///> operator translates characters instead of bytes.  Note that
+the C<tr///CU> functionality has been removed, as the interface was a
+mistake.  For similar functionality see pack('U0', ...) and pack('C0', ...).
 
 =item *
 


[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=docs
    severity=medium
---
Site configuration information for perl v5.7.0:

Configured by nick at Wed Sep  6 23:16:48 BST 2000.

Summary of my perl5 (revision 5.0 version 7 subversion 0) configuration:
  Platform:
    osname=linux, osvers=2.2.16-rmk3, archname=armv4l-linux
    uname='linux bagpuss.unfortu.net 2.2.16-rmk3 #2 fri sep 1 08:55:31 bst 2000 armv4l unknown '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='/usr/local/bin/gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='2.95.2 20000516 (release) [Rebel.com]', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='/usr/local/bin/gcc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lsfio -lnsl -lndbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil
    libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    

---
@INC for perl v5.7.0:
    /usr/local/lib/perl5/5.7.0/armv4l-linux
    /usr/local/lib/perl5/5.7.0
    /usr/local/lib/perl5/site_perl/5.7.0/armv4l-linux
    /usr/local/lib/perl5/site_perl/5.7.0
    /usr/local/lib/perl5/site_perl
    .

---
Environment for perl v5.7.0:
    HOME=/home/nick
    LANG (unset)
    LANGUAGE (unset)
    LC_CTYPE=en_GB.ISO-8859-1
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/nick/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/sbin:/usr/sbin:/usr/local/sbin
    PERL_BADLANG (unset)
    SHELL=/bin/bash


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About