44 recetas para trabajar con Unicode en Perl
Publicado: 2012-04-02 18:49 @826
Esta es una traducción de artículos publicados en Perl.com de las 44 recetas que Tom Christiansen creó para trabajar con Unicode en Perl 5.
Están disponibles también en la propia documentación de Perl, a partir de v5.20.2. Se accede con el comando perldoc perlunicook
An intelligible guide to Unicode in Perl 5.
℞ 0: Preámbulo estándar
A menos que se indique lo contrario, todos los ejemplos de este recetario requieren este preámbulo estándar para funcionar correctamente, con el #! ajustado a su sistema:
Esto obligará, incluso a los programadores de Unix, a hacer binmode sobre flujos binarios, o abrirlos con :raw, pero es la única forma de acceder a ellos de una forma portátil.
ATENCIÓN: use autodie (pre 2.26) y use open no se llevan bien, el uno con el otro.
Esta combinación de características pone a Perl en un conocido estado de compatibilidad Unicode y rigor estricto, para que las siguientes operaciones se comporten como se espera.
Artículo original (en inglés)
P.D.: un nuevo módulo en CPAN permite activar todo el soporte de UTF-8 de forma muy cómoda: utf8::all.
Están disponibles también en la propia documentación de Perl, a partir de v5.20.2. Se accede con el comando perldoc perlunicook
An intelligible guide to Unicode in Perl 5.
- ℞ 0: Preámbulo estándar
- ℞ 1: filtro genérico de comprensión Unicode
- ℞ 2: Ajuste fino de las advertencias Unicode
- ℞ 3: Declare el fuente en UTF-8 para los identificadores y literales
- ℞ 4: Caracteres y sus números
- ℞ 5: Literales Unicode por número de carácter
- ℞ 6: Obtener el nombre de un carácter a partir de su número
- ℞ 7: Obtener el número de un carácter a partir de su nombre
- ℞ 8: Nombres de caracteres Unicode
- ℞ 9: Nombres de secuencias Unicode
- ℞ 10: Nombres de caracteres personalizados
- ℞ 11: Nombres de códigos de carácter CJK
- ℞ 12: De/codificación explícita
- ℞ 13: Decodificar los argumentos del programa en utf8
- ℞ 14: Decodificar los argumentos del programa según la codificación de la configuración regional
- ℞ 15: Declarar STD{IN,OUT,ERR} para que sean UTF-8
- ℞ 16: Declarar STD{IN,OUT,ERR} para que estén codificados según la configuración regional
- ℞ 17: Hacer la E/S por defecto a utf8
- ℞ 18: Hacer que toda la E/S y argumentos trabajen por defecto en utf8
- ℞ 19: Abrir archivo con una codificación específica
- ℞ 20: Tamaño de caja en Unicode
- ℞ 21: Comparaciones Unicode insensibles al tamaño de caja
- ℞ 22: Buscando secuencias de ruptura de línea Unicode con expresiones regulares
- ℞ 23: Obtener la categoría de un carácter
- ℞ 24: Desactivar la consideración Unicode de las clases de caracteres incorporadas
- ℞ 25: Usar propiedades Unicode en expresiones regulares con \p, \P
- ℞ 26: Propiedades de caracteres personalizadas
- ℞ 27: Normalización Unicode
- ℞ 28: Convertir valores numéricos Unicode no-ASCII
- ℞ 29: Coincidir con agrupaciones de grafemas Unicode en exp.reg.
- ℞ 30: Extraer por grafema en lugar de por código de carácter (exp.reg.)
- ℞ 31: Extraer por grafema en lugar de por código de carácter (substr)
- ℞ 32: Invertir una cadena por sus grafemas
- ℞ 33: Longitud de la cadena en grafemas
- ℞ 34: Impresión de columnas de ancho fijo en Unicode
- ℞ 35: Cotejo Unicode
- ℞ 36: Ordenación Unicode independiente del tamaña de caja y de las tildes
- ℞ 37: Cotejo Regional Unicode
- ℞ 38: Haciendo que cmp trabaje con texto en lugar de con códigos de carácter
- ℞ 39: Comparación insensible al tamaño de caja y a los diacríticos
- ℞ 40: Comparación regional insensible al tamaño de caja y a los diacríticos
- ℞ 41: Ruptura de líneas en Unicode
- ℞ 42: Texto Unicode en hash DBM, forma tediosa
- ℞ 43: Texto Unicode en hash DBM, forma fácil
- ℞ 44: PROGRAMA: Demo de cotejo Unicode e impresión
- Módulos, y final
℞ 0: Preámbulo estándar
A menos que se indique lo contrario, todos los ejemplos de este recetario requieren este preámbulo estándar para funcionar correctamente, con el #! ajustado a su sistema:
Using perl Syntax Highlighting
- #!/usr/bin/env perl
- use utf8; # los literales e identificadores pueden estar en UTF-8
- use v5.12; # o siguientes, para activar la característica "unicode_strings"
- use strict; # entrecomille las cadenas de caracteres, declare las variables
- use warnings; # activado por defecto
- use warnings qw(FATAL utf8); # advertencia fatal en caso de fallos de codificación
- use open qw(:std :utf8); # los flujos no declarados, en UTF-8
- use charnames qw(:full :short); # ya no necesario en v5.16
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Esto obligará, incluso a los programadores de Unix, a hacer binmode sobre flujos binarios, o abrirlos con :raw, pero es la única forma de acceder a ellos de una forma portátil.
ATENCIÓN: use autodie (pre 2.26) y use open no se llevan bien, el uno con el otro.
Esta combinación de características pone a Perl en un conocido estado de compatibilidad Unicode y rigor estricto, para que las siguientes operaciones se comporten como se espera.
Artículo original (en inglés)
P.D.: un nuevo módulo en CPAN permite activar todo el soporte de UTF-8 de forma muy cómoda: utf8::all.