Índice de Materias

ISA
Heredando de Exporter | EXPORT y EXPORT_OK | EXPORT y EXPORT_OK | Herencia
dumpValue
La Función dumpValue de
Digital Signature Algorithm
Autentificación Automática
$0
El Array Especial @ARGV
$^ I
El manejador ARGVOUT
$_
La Variable $_ | Acceso a los Elementos
$ARG
Variables Predefinidas en Perl
$ARGV
El Operador Diamante y
$X
El Array Especial @ARGV
átomos prototipo
Formato de los Prototipos
índices negativos
Indices Negativos
-r
Tipo de objeto y
-s
El operador map
.dump
Introducción | Instalar una base de
.table
Introducción
_
LLamada con Ampersand y
BEGIN
Modificar @INC en Tiempo
import
La Subrutina import
no
Aprenda a Decir no
caller
Ejemplo
CPAN.pm
Instalar un módulo con
CPAN::FirstTime
CPAN: Si no tenemos
h2xs
Construcción de la Jerarquía
nomethod
Búsqueda del Manejador de
fallback
Búsqueda del Manejador con
nomethod
Búsqueda del Manejador con
tie
¿Atados? ó ¿Corbatas? ó
untie
¿Atados? ó ¿Corbatas? ó
q
Los operadores q y
qq
Los operadores q y
sprintf
Contexos Numérico y de
oct
Contexos Numérico y de
open
La Variable $!
$_
La Variable $_
length
La Variable $_
defined
La Lógica de Perl
qw
El Operador qw
for
Bucles sobre arrays: el
grep
El operador grep
map
El operador map
join
La Función join
split
La Función split
caller
¿Quién llamó a esta
__END__
El Manejador de Ficheros
DATA
El Manejador de Ficheros
STDIN
Operaciones sobre Ficheros
STDOUT
Operaciones sobre Ficheros
STDERR
Operaciones sobre Ficheros
DATA
Operaciones sobre Ficheros
ARGV
Operaciones sobre Ficheros
ARGVOUT
Operaciones sobre Ficheros
stat
La función stat
localtime
localtime en contexto de
pos
El Modificador /g
length
Expandiendo y comprimiendo tabs
Data::Dumper
Impresión de Estructuras Anidadas
IO::File
El Módulo IO::File
%INC
Cargando una Librería con | CPAN: Si no tenemos
=~
El Operador de Binding
=cut
La Documentación en Perl
__PACKAGE__
Subrutinas Privadas
a
El Bloque de Comparación
abs_path
Obtener el Camino Absoluto
accesor
Getters, Setters y Mutators
acortar un array
push, pop, shift, unshift
add
Los Paquetes O y
AddPreamble
Generando Formatos con perldoc
Algorithm::Knap01DP
Práctica: Generación de Pruebas
ancla
Expresiones Regulares | grep
anclas
Expresiones Regulares
Apply
Un Algebra de Generadores
argumentos con nombre
Argumentos con Nombre
ARGV
El Operador Diamante y
ARGVOUT
El manejador ARGVOUT
array
Introducción | Diferencias entre Arrays y
array anónimo
Listas Anónimas
Asignación a una lista
Asignación a Listas y
atributo de clase
El convenio del Subguión
atributos del objeto
El convenio del Subguión
autobundle
Construccion de un Bundle
AUTOLOAD
Uso de AUTOLOAD para | Práctica: Instalación Automática de
Autovivificación
Autovivificación
Autovivification
Autovivificación
awk
Una Brevísima Introducción a
b
El Bloque de Comparación | Los Paquetes O y
B::Bytecode
Los Paquetes O y
B::ByteLoader
Los Paquetes O y
B::CV
Recorrer el Árbol
B::Deparse
Los Paquetes O y
B::NULL
Orden de Ejecución
B::OP
Los Paquetes O y | Recorrer el Árbol
B::svref_2object
Recorrer el Árbol
B::Utils
Recorrer el Árbol
BEGIN
Modificar @INC en Tiempo
Benchmark
Typeglobs y Eficiencia
bendice
Programación Orientada a Objetos
Berkeley Database Manager
MLDBM
binding
El Operador de Binding | Expresiones Regulares
binmode
La función read | Operadores, STDOUT y Unicode
blessed
La Función blessed
bundle
Bundles
bundles
El Comando b
búsqueda de un método
Búsqueda de un Método
C
Inline y Otros Lenguajes
cadenas de comillas dobles
Cadenas
cadenas de comillas simples
Cadenas
can
Un Ejemplo de uso | La clase UNIVERSAL
casamiento
Expresiones Regulares
Casar
Expresiones Regulares
catfile
Los módulos File::Basename y
CFG
Orden de Ejecución
chdir
El Operador chdir
chmod
La función chmod
chomp
Operadores de Cadena
chop
Operadores de Cadena
chown
La función chown
clase
Programación Orientada a Objetos
clase de caracteres
Clases de Caracteres
clases
Paquetes y Clases
Class::Accessor
El Módulo Class::Accessor
Class::DBI
Describir la Aplicación
Class::Struct
Instalación Automática de Métodos
clausura
Clausuras | Variables Léxicas Persistentes
claves
Breve Introducción al Manejo | Hashes
closedir
Los operadores opendir, readdir
cola
push, pop, shift, unshift
comillas dobles
Comillas Dobles
comillas simples
Comillas Simples
Comparación Profunda
Las Funciones is_deeply e
compress
Filtros para DBM
Compress::Zlib
Filtros para DBM
connection
Establecer una Clase Base
constant
Práctica: Area de un
Constructores
Programación Orientada a Objetos | Constructores
contador de referencias
El Contador de Referencias
contexto
Número de elementos de
contexto de cadena
Contexos Numérico y de
contexto numérico
Contexos Numérico y de
contextos de cadena
Contexos Numérico y de
contextos numéricos
Contexos Numérico y de
Contextual::Return
Creando Variables Sensibles al | El Módulo Contextual::Return | El Módulo Contextual::Return | Contexto Booleano: Bucles con
Control flow Graph
Orden de Ejecución
copia de un objeto
Copia de Objetos
CORE::
La función prototype | El Prefijo CORE
CORE::GLOBAL
El Paquete CORE::GLOBAL
CPAN
El Comando b | Modificar la Configuración Inicial | Empaquetado de Modulos XS
CPAN::Distribution
Instalación de Versiones de
CPAN::Module
Instalación de Versiones de
cpan_home
El Módulo CPAN/Config.pm | En que Directorio queda
currying
Currying
DATA
El Módulo Inline
Data::Dumper
El Módulo Data::Dumper
DB_File
El Módulo DB_File
DBI
Instalar una base de
dbmopen
La función dbmopen | El Módulo DB_File
delegación
Delegación en la Inicialización
delete
Las funciones delete y
delete_method
Suprimiendo Subrutinas con Typeglobs
Deparse
Operadores Lógicos
desenrollar
Asignación de Hashes
DESTROY
El Método DESTROY | El Destructor | Destructores | ¿Atados? ó ¿Corbatas? ó
destructor
Destructores
Destructores
Programación Orientada a Objetos
Devel::Cover
Devel::Cover: Estudio del Cubrimiento
Devel::DProf
Estudio del Perfil de
Devel::Peek
El Módulo Devel::Peek
diamante
Diamantes
directory handle
Los operadores opendir, readdir
Distribution id
Instalación de Versiones de
divide-y-vencerás
Práctica: Memoización de un
documentos aqui
Clausuras y Generación de
dprofpp
Estudio del Perfil de | Estudio del Perfil de
DSA
Autentificación Automática
du
Construyendo un Mirror de
dualvar
Creando Variables Sensibles al | El Módulo Contextual::Return
dvi
Generando Formatos con perldoc
DynaLoader::dl_library_path
LLamada desde Perl
débil
La función weaken
each
Las funciones keys y | La función each | Un Algebra de Generadores
ejecutables standalone
Instalación de Ejecutables con
Ejercicio
SUPER
Ejercicio: SUPER
Búsqueda de Métodos
Ejercicio: Búsqueda de Métodos
Identificadores entre LLaves
Ejercicio: Identificadores entre LLaves
Prioridad de Operaciones
Ejercicio: Prioridad de Operaciones
Significados de la Coma
Ejercicio: Significados de la
elsif
El constructo elsif
emacs
Una Brevísima Introducción a
Emulación de un Switch
Práctica: Emulación de un
English
Variables Predefinidas en Perl
envolver
Creando un Envoltorio para
espacio de nombres
Tipo de objeto y | Los packages: Repaso
especificación completa del nombre
Nombre Completo | Los packages: Repaso
eval
Práctica: Postfijo | Como Evitar la Muerte
evaluación perezosa
Listas Perezosas
exists
La Función exists
exportar
La Subrutina import
Exporter
Heredando de Exporter
Extreme Programming
Bancos de Pruebas y
ExtUtils::Command::MM
La Subrutina test_harness
ExtUtils::MakeMaker
Parámetros de WriteMakefile | Parámetros de WriteMakefile
ExtUtils::Packlist
Suprimir un Módulo Instalado
fábrica de funciones
Una Función curry
FETCH
¿Atados? ó ¿Corbatas? ó
fichero patch
Patches o Parches
File::Basename
Los módulos File::Basename y | Los módulos File::Basename y
File::Path
Crear y Suprimir Directorios
File::Spec
Los módulos File::Basename y | Los módulos File::Basename y
filehandle
Operaciones sobre Ficheros
fileparse
Los módulos File::Basename y
find_weakened_cycle
Detectando Ciclos
first_release
Módulos en el Núcleo
flecha
sintáxis
Métodos y la Sintáxis
for
Acceso a los Elementos
Frequency
Un Algebra de Generadores
fully qualifying the name
Nombre Completo | Los packages: Repaso
funciones de orden superior
Funciones de orden superior
función
Memoizing
function factory
Una Función curry
Gen
Un Algebra de Generadores
generate
Un Algebra de Generadores
GetOptions
Procesado de los Argumentos | Procesado de los Argumentos
getpwnam
La función chown
glob
El operador map | Acceso Mediante glob | El Pragma use subs
gmtime
La función gmtime
Gottlob Frege
Currying
Grafo de Flujo de Control
Orden de Ejecución
grep
Una Brevísima Introducción a | Una Brevísima Introducción a
h2xs
El Programa Makefile.PL
hash
Breve Introducción al Manejo | Hashes
hash anónimo
Hashes Anónimos
Hash::Util
Bloqueo de las Claves
Haskell Curry
Currying
here-document
Clausuras y Generación de
heredoc
Clausuras y Generación de
herencia
Búsqueda de un Método
hexadecimales
Contexos Numérico y de
highest common factor
Cálculo del Máximo Común
holds
Uso de Test::LectroTest Dentro | La Función holds
iconv
Conversores
import
La Evaluación de use | EXPORT y EXPORT_OK
importar
Que es Importar
incident ticket system
Software de Rastreo de
index
Operadores de Cadena
Inline
El Módulo Inline | Cabeceras Reconocidas por Inline::C | Cabeceras Reconocidas por Inline::C | Reescriba en C las
Inline_Stack_
Reescriba en C las
Inline_Stack_Push
Reescriba en C las
Inline_Stack_Reset
Reescriba en C las
Inline_Stack_Vars
Reescriba en C las
insert_method
Suprimiendo Subrutinas con Typeglobs
install
Instalación de Versiones de
INSTALL_BASE
no title | Las opciones INSTALL_BASE y | Las opciones INSTALL_BASE y
interpolación
Interpolación en Cadenas de
introspección
Práctica: Stash
is
Las Funciones is_deeply e
is_deeply
Las Funciones is_deeply e
isa
La clase UNIVERSAL | El método isa
isweak
Liberación de Memoria en | La función isweak
iterador
Clausuras e Iteradores | Un Ejemplo Simple de
iterador privado
Inicialización del Iterador
join
La Función split
keymaps
Ficheros Unicode en vim
keys
Las funciones keys y
kpdf
Generando Formatos con perldoc
last
last
latex
Generando Formatos con perldoc
latin1
Ficheros Unicode en vim
lc
Caja e Inversión de
lcfirst
Caja e Inversión de
length
Operadores de Cadena | Operadores, STDOUT y Unicode
libreria
Sufijos
like
Como Evitar la Muerte
List
Un Algebra de Generadores
List::MoreUtils
Los Módulos List::Util y | Obtener el Conjunto de
List::Util
Los Módulos List::Util y | Reescribiendo reduce mediante Prototipos | Currying
listas
Diferencias entre Arrays y
listas perezosas
Listas Perezosas
Llamada con flecha
nombre completo del método
Delegación en la Inicialización
lock_keys
Bloqueo de las Claves
look
El Comando look
lvalue
Autovivificación
m
Una Brevísima Introducción a
main
La declaración our
makefile.PL
Las opciones INSTALL_BASE y | El Programa Makefile.PL
manejador de directorio
Los operadores opendir, readdir
MANIFEST
El Fichero MANIFEST
MANIFEST.SKIP
make MANIFEST
mantra de instalación
Instalación a mano
Memoize
Memoizing | Práctica: La Función memoize
memoizing
Memoizing
META.yml
El fichero META.yml
minicpan
Construyendo un Mirror de
mkdir
La función mkdir | Peligros en el Uso
MLDBM
MLDBM | MLDBM
modo byte
Operadores, STDOUT y Unicode
modo carácter
Operadores, STDOUT y Unicode
Moses Schönfinkel
Currying
mutator
Getters, Setters y Mutators
my
Práctica: Area de un
MY::postamble
Añadiendo Objetivos al Makefile
método
Programación Orientada a Objetos
método abstracto
Métodos Abstractos
método de objeto
Métodos de Objeto y
método dinámico
Métodos de Objeto y
método singleton
Un Ejemplo: Métodos Singleton
módulo
Sufijos
newSViv
Reescriba en C las
newSVnv
Reescriba en C las
newSVuv
Reescriba en C las
next
next | Orden de Ejecución
nomethod
Búsqueda del Manejador con | Argumentos de nomethod
o conf
Lista de Opciones de
o conf init
Modificar la Configuración Inicial
objeto
Programación Orientada a Objetos
objeto de clase
Métodos de Objeto y
one-liner
Ficheros .par Simples
one-liners
Ejecución en la Línea
OneOf
Un Algebra de Generadores
opciones de línea
Uso de Perl desde | Modificación en múltiples ficheros
opción -n
La opción -n de
opción -M
Control de Versiones
Opción de perl -i
Uso de Perl desde
Opción de perl -n
Uso de Perl desde
Opción de perl -p
Uso de Perl desde
open
Lectura de Datos | Las Cadenas como Ficheros
opendir
Los operadores opendir, readdir
openhandle
La Función openhandle
operador
El operador .. | La Notación Flecha
operadores de bit
Contexos Numérico y de
our
La declaración our
overload.pm
El Módulo overload
P5NCI
LLamada desde Perl | no title | La portabilidad de P5NCI
package
La declaración our | ¿Quién llamó a esta
paps
Conversores
paquete
¿Quién llamó a esta
paquete main
Las Variables Especiales Pertenecen
PAR
Instalación de Ejecutables con
par.pl
Ejecutables en un .par
parche
Patches o Parches | Patches o Parches
parse_from_file
Generando Formatos con perldoc
Paste
Un Algebra de Generadores
patch
Patches o Parches
PATH
Las opciones INSTALL_BASE y
pdflatex
Generando Formatos con perldoc
PDL
El Módulo PDL
perfilado
Estudio del Perfil de
Perl Archive Toolkit
Instalación de Ejecutables con
Perl Archives
PAR: The Perl Archive
Perl Data Language
El Módulo PDL
Perl Package Descriptor
Parámetros de WriteMakefile
Perl packager
Instalación de Ejecutables con
perldoc
La Documentación en Perl | Generando Formatos con perldoc
ARGV
El Array Especial @ARGV | El Operador Diamante y
persistencia
DBMs Multinivel
piconv
Conversores
pila
push, pop, shift, unshift
plain old documentation
La Documentación en Perl
plan
La Función holds | Usando Test::LectroTest::Generator en Algorithm::Knap01DP
pm_to_blib
El fichero pm_to_blib
pminst
El Conjunto de Utilidades
pod
Generando Formatos con perldoc | La Documentación | La Documentación en Perl
pod2latex
Conversión de pod a
pod2pdf.pl
Conversión de pod a
pop
push, pop, shift, unshift
pp
Instalación de Ejecutables con
PPD
Parámetros de WriteMakefile
pragma
Depuración de errores
PREFIX
Las opciones INSTALL_BASE y
print
Los Paquetes O y
Problema de la Mochila 0-1
Pruebas en la Construcción
problema del subconjunto suma
Usando Test::LectroTest::Generator en Algorithm::Knap01DP
procesador software
Los Paquetes O y
profiler
Estudio del Perfil de
profiling
Estudio del Perfil de
Programación Dinámica
Pruebas en la Construcción
promesa
Listas Perezosas
promise
Listas Perezosas
prompt
Interrogando al Usuario
prototipo backslash
Prototipo Referencia a un
prototipos
Prototipos | Control de la LLamada
prototype
La función prototype
prove
La Utilidad prove
Práctica
Ancestros de un Objeto
Práctica: Ancestros de un
Area de un Círculo
Práctica: Area de un
AUTOLOAD
Práctica: AUTOLOAD
Conjuntos a través de Hashes
Práctica: Conjuntos a través
Construcción de un wrapper
Práctica: Construcción de un
Construcción de una Distribución
Práctica: Construcción de una
Constructores-Copia
Práctica: Constructores-Copia
CPAN
Práctica: CPAN | Práctica: CPAN
Currificación de grep
Práctica: Currificación de grep
Descenso Recursivo en Subdirectorios
Práctica: Descenso Recursivo en
Emulación de un Switch
Práctica: Emulación de un
En Orden ASCIIbético
Práctica: En Orden ASCIIbético
Fichero en Orden Inverso
Práctica: Fichero en Orden
Ficheros Grandes y Viejos
Práctica: Ficheros Grandes y
Generación de Pruebas con Test::LectroTest
Práctica: Generación de Pruebas
Herencia
Práctica: Herencia
Indexación
Práctica: Indexación
Inserción de una Subrutina
Práctica: Inserción de una
Instalación Automática de Métodos
Práctica: Instalación Automática de
Instalar un Módulo
Práctica: Instalar un Módulo
Iterador de Archivos
Práctica: Iterador de Archivos
La Función memoize
Práctica: La Función memoize
Listas Perezosas
Práctica: Listas Perezosas
Memoización de un Divide y Vencerás
Práctica: Memoización de un
Máximo
Práctica: Máximo
Números Fraccionarios
Práctica: Números Fraccionarios
Ordenación Internacional
Práctica: Ordenación Internacional
Ordenar por Calificaciones
Práctica: Ordenar por Calificaciones
Polares a Cartesianas
Práctica: Polares a Cartesianas
Postfijo
Práctica: Postfijo
Postfijo y Subrutina
Práctica: Postfijo y Subrutina
Pruebas
Práctica: Pruebas
Referenciado Simbólico
Práctica: Referenciado Simbólico
Sin Distinguir Case
Práctica: Sin Distinguir Case
Stash
Práctica: Stash
Suma de Prefijos
Práctica: Suma de Prefijos
Tie Escalar
Práctica: Tie Escalar
Un Método Universal de Volcado
Práctica: Un Método Universal
Un Módulo OOP Simple
Práctica: Un Módulo OOP
push
push, pop, shift, unshift
pushmark
Los Paquetes O y
Python
Inline y Otros Lenguajes
read
La función read
readdir
Los operadores opendir, readdir | Práctica: Iterador de Archivos | Práctica: Iterador de Archivos
readline
Los Paquetes O y
readonly
Detectando si un Argumento
reduce
Paso de Listas y
ref
Identificando un referente ref | La Referencia no es
referenciado simbolico
Referencias Simbólicas
reftype
La Función reftype | La Referencia no es
regexp
Una Brevísima Introducción a
rename
La función rename | Renombrar Ficheros
reverse
Operadores de Cadena | La función reverse | Caja e Inversión de
rindex
Operadores de Cadena
rman
Conversión de pod a
rmdir
La función rmdir
RSA
Autentificación Automática
runtests
La Subrutina runtests
rvalue
Autovivificación
scalar context
Número de elementos de
Scalar::Util
Creando Variables Sensibles al | Liberación de Memoria en
Scheme
Clausuras
scratchpads
Variables léxicas y typeglobs | Variables Léxicas y Scratchpads
sed
Una Brevísima Introducción a
select
Introducción
sensibles al contexto
Contexos Numérico y de
separador de elementos de un array
Interpolación de arrays en
serialización
DBMs Multinivel
Set::Scalar::Base
Sobrecarga de Operadores Lógicos
set_prototype
La función set_prototype
shell
Instalar un módulo con
shift
push, pop, shift, unshift
singletons
La Idea de los
sized
Un Algebra de Generadores | Un Algebra de Generadores
sizing guidance
Un Algebra de Generadores
SKIP
Pruebas SKIP | Práctica: Pruebas
slice
Troceado de arrays
sobrecarga de operadores
El Módulo overload
software de rastreo de errores
Software de Rastreo de
software de rastreo de problemas
Software de Rastreo de
sort
La función sort
splice
push, pop, shift, unshift
split
Práctica: Postfijo
sprintf
Números
sql_master
Introducción
sqlite3
Introducción
ssh
Comprobando la Portabilidad del | Autentificación Automática
ssh-copy-id
Transferencia de la Clave
START
Orden de Ejecución
stash
¿Que es un Stash?
STORE
¿Atados? ó ¿Corbatas? ó
String
Un Algebra de Generadores
stringification
Sobrecarga y Contexto de
struct
Instalación Automática de Métodos
sub
Definición de subrutinas
subrutina
Definición de subrutinas
subrutina anónima
Subrutinas Anónimas
Subset Sum Problem o SSP
Usando Test::LectroTest::Generator en Algorithm::Knap01DP
substr
Operadores de Cadena
SUPER
La notación SUPER
SUPER::
La notación SUPER
SV
Reescriba en C las
sv_2mortal
Reescriba en C las
Symbol Table Hash
¿Que es un Stash?
Symbol::delete_package
El Módulo Symbol
symlink
La función symlink
syswrite
La función syswrite
Test::Exception
El Módulo Test::Exception
Test::Harness
La Subrutina test_harness
Test::Kwalitee
Comprobando la Distribución con
Test::LectroTest
Referencias
Test::LectroTest::Compat
Uso de Test::LectroTest Dentro
Test::LectroTest::Generator
Usando Test::LectroTest::Generator en Algorithm::Knap01DP
Test::More
Contenidos de un Programa | Las Funciones is_deeply e
Test::Tutorial
Práctica: Pruebas
test_harness
La Subrutina test_harness
TestRunner
La Función holds
Text::ParseWords::shellwords
La Clase CPAN::Shell
There is more than one way to do it
Obtener el Conjunto de
ticket
Software de Rastreo de
tie
¿Atados? ó ¿Corbatas? ó
Tie::File
Ficheros de Texto como
tied
Volcado automático de una
TIESCALAR
¿Atados? ó ¿Corbatas? ó
Time::HiRes
El Módulo Time::HiRes
timethese
Typeglobs y Eficiencia
TIMTOWTDI
Obtener el Conjunto de
Tk
Instalación de Ejecutables con
tkpod
La Documentación en Perl
TODO
Pruebas TODO
trigger
Triggers
trouble ticket system
Software de Rastreo de
trozo
Troceado de arrays
typeglob
Introducción | Variables léxicas y typeglobs
Typeglob Selectivo
Typeglobs Selectivos
typemap
Cabeceras Reconocidas por Inline::C
uc
Caja e Inversión de
ucfirst
Caja e Inversión de
undef
Interpolación en Cadenas de | Dinamicidad de los Arrays
unicode
Conversores
unificado
Crear el Patch
uniq
Obtener el Conjunto de
UNIVERSAL
La clase UNIVERSAL
unless
La estructura de control
unlink
La función unlink
unlock_keys
Bloqueo de las Claves
unshift
push, pop, shift, unshift
unwinding
Asignación de Hashes
upgrade
El comando upgrade
use subs
El Pragma use subs
utf8
La función reverse | Operadores, STDOUT y Unicode
valores
Breve Introducción al Manejo | Hashes
values
Las funciones keys y
variable
Gestión de la memoria
variable léxica
Variables privadas
variable mágica por defecto
Acceso a los Elementos
variable por defecto
La Variable $_
variable privada
Variables privadas
variables ``mágicas''
La Variable $!
variables privadas
El convenio del Subguión
VERSION
La clase UNIVERSAL
versión
Control de Versiones
vi
Una Brevísima Introducción a
walkoptree_simple
Recorrer el Árbol
wantarray
Contexto de la llamada
weaken
Liberación de Memoria en | La función weaken
wrapper
Creando un Envoltorio para
wrapping
Práctica: La Función memoize
WriteMakefile
Parámetros de WriteMakefile
zip
Ficheros .par Simples

Casiano Rodríguez León
2009-10-04