Map y las expresiones regulares

El siguiente ejemplo produce una lista formada por las direcciones electrónicas de una carpeta de correo:
#!/usr/bin/perl -w
open MAILFILE, shift;
@from = map /^From:\s+(.*)$/, <MAILFILE>;
map { print "$_\n" } @from;
Observése el uso de map aplicando la expresión regular /^From:\s+(.*)$/ a cada una de las líneas del fichero de entrada. Las cadenas que se emparejan con el primer paréntesis son devueltas para formar la lista que se almacena en @from. El segundo uso de map imprime cada uno de los elementos de la lista @from. Al ejecutarlo se produce una salida como esta:
~/perl/src> from.pl ~/mail/euromicro
Mail System Internal Data <MAILER-DAEMON@nereida.deioc.ull.es>
pdp03 Conference Manager <pdp03cm@iris.ima.ge.cnr.it>
pdp03cm@samba.ima.ge.cnr.it
"Chiquita Snippe-Marlisa" <euromicro@standby.nl>
"C.Leon [TRACS]" <coromoto@epcc.ed.ac.uk>
Javier Miranda <jmiranda@iuma.ulpgc.es>
Javier Miranda <jmiranda@iuma.ulpgc.es>

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19