perl and unicode

20 September 2009

I have just found an interesting entry about perl and unicode:

http://perlgeek.de/en/article/encodings-and-unicode

Apart of the typical recommendation of using :encoding(UTF-8) as an input layer, it has a script for finding out which is the encoding of your shell:

#!/usr/bin/perl
#!/usr/bin/perl
use warnings;
use strict;
use Encode;

my @charsets = qw(utf-8 latin1 iso-8859-15 utf-16);

# some non-ASCII codepoints:
my $test = 'Ue: ' . chr(220) .'; Euro: '. chr(8364) . "\n";

for (@charsets){
    print "$_: " . encode($_, $test);
}

Also, this entry explain how some perl function are expecting text string or ‘Codepoints’ instead of binary data and explains how to decode the strings properly to pass them to this functions.

This other entry also explain how to avoid the ‘wide character in print’ warning ahinea.com/en/tech/perl-unicode-struggle.html, and here there is an explanation of the difference between UTF-8 and utf8 (jeremy.zawodny.com/blog/archives/010546.html).

If you want to read more about encoding:

Finally al link to perlmonks where it is explained why the pragma :utf8 is insecure and you should use :encoding(UTF-8)
www.perlmonks.org/index.pl?node_id=731943

perl one-liner: print filenames with content matched

17 September 2009

If you want to know which files contains a specific text string you can do:

perl -nle '/find this/ and print $ARGV and close ARGV' file1 file2 .....
  • $ARGV contains the name of each file.
  • ARGV is the filehandle for $ARGV.
  • This one-liner searches each line (-n option) for a match (/xxx/) and when it happens (and) prints the file name and closes the filehandle to pass to search the next file.

This one-liner is very useful when聽 combined with xargs.


Frozen Bubble

12 September 2009

Pero mira que bien! acabo de enterarme que Frozen Bubble (juego adictivo donde los haya) ha sido creado con perl_sdl.

Si es que Perl es el Emacs de los lenguajes de programaci贸n 馃槈


Por que debes usar Perl 5.10.x?

11 September 2009

Por que es un salto cualitativo en la modernidad de Perl. Es un paso mas hacia Perl 6 y aunque algunas de sus funcionalidades se pueden conseguir en Perl 5.8 con diferentes modulos, usar Perl 5.10 es una declaraci贸n de intenciones. Significa que estas actualizado y te preocupas por las herramientas que usas.

Usar perl 5.10 y sus nuevas funcionalidades es una gran ayuda en tu estilo de programaci贸n, aunque solo sea por usar ‘say’ y los nuevos ‘given/when’ y ‘smart_match’.

Usar perl 5.10 no es s贸lo usar perl 5.10 sino que debe implicar tambi茅n usar los nuevos paradigmas de programaci贸n y las nuevas herramientas disponibles en Perl como Perl::Critic, Moose, DBIx::Class, Catalyst, Devel::NYTProf, etc


Ya est谩 disponible perl 5.10.1!!!

11 September 2009

Por fin ya est谩 disponible perl 5.10.1. Esta nueva versi贸n soluciona varios problemas de la version 5.10.0, pero tambi茅n introduce ciertas incompatibilidades como por ejemplo la estructura de control given/when o el operador smart match.

Perl 5.10.1 mejora el uso de UTF8, pero aun no se hasta que punto Perl es capaz de manejarse bien con UTF8 sin hacerse un l铆o. Ya lo iremos viendo.

Si a煤n no estas usando perl 5.10.x aprovecha e instalalo. Perl 5.10 incorpora muchas novedades frente al 5.8 que ya tiene sus a帽itos. Las ventajas de perl 5.10 (‘perl moderno’)聽 son bastantes y las comentar茅 en una pr贸xima entrada.

Los destalles de los cambios se pueden ver en perldelta, y se puede instalar desde CPAN

C贸mo instalarlo en tu HOME: http://gugod.org/2009/08/install-perl-to-home.html