SlideShare una empresa de Scribd logo
1 de 29
Programación en perl
        hashes
¿Qué es un hash?


Estructura de datos que permite almacenar
un número indeterminado de datos indexados
por nombre.

Es como un array en el que sustituimos el
índice numérico por una cadena.
¿Qué es un hash?
¿Qué es un hash?
Supongamos que queremos almacenar la siguiente información
de un coche: marca, modelo, numero de puertas y potencia.
¿Qué es un hash?
Supongamos que queremos almacenar la siguiente información
de un coche: marca, modelo, numero de puertas y potencia.

$coche[0]=‘ford’
$coche[1]=‘scort’
$coche[2]=5
$coche[3]=‘150cv’
¿Qué es un hash?
Supongamos que queremos almacenar la siguiente información
de un coche: marca, modelo, numero de puertas y potencia.

$coche[0]=‘ford’
$coche[1]=‘scort’
$coche[2]=5
$coche[3]=‘150cv’

Problema: nos tenemos que acordar de qué significa cada
índice.
¿Qué es un hash?
Supongamos que queremos almacenar la siguiente información
de un coche: marca, modelo, numero de puertas y potencia.

$coche[0]=‘ford’
$coche[1]=‘scort’
$coche[2]=5
$coche[3]=‘150cv’

Problema: nos tenemos que acordar de qué significa cada
índice.

Problema aún peor: si no lo documentamos, el programador
que tenga que revisar vuestro código dos años después no
creo que os tenga en muy buena estima.
¿Qué es un hash?


Accediendo al elemento de un hash:

  $coche{‘marca’} = ‘ford’
¿Qué es un hash?

     $ porque en un
  elemento de un hash
almacenamos un escalar

                                 clave      valor

       Accediendo al elemento de un hash:

           $coche{‘marca’} = ‘ford’

                identificador
             (nombre del hash)
¿Qué es un hash?
¿Qué es un hash?
La clave puede ser una expresión perl:
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;

   $coche{ &obtenerClave };
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;

   $coche{ &obtenerClave };

   $coche{ $clave+‘_key’};
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;

   $coche{ &obtenerClave };

   $coche{ $clave+‘_key’};

Al hacer $coch{‘marca’} = ‘ford’
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;

   $coche{ &obtenerClave };

   $coche{ $clave+‘_key’};

Al hacer $coch{‘marca’} = ‘ford’

   Si la clave no existe, se crea y se le asigna el valor ‘ford’
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;

   $coche{ &obtenerClave };

   $coche{ $clave+‘_key’};

Al hacer $coch{‘marca’} = ‘ford’

   Si la clave no existe, se crea y se le asigna el valor ‘ford’

   Si la clave ya existe, se sobreescribe el valor.
¿Qué es un hash?
La clave puede ser una expresión perl:

   $coche{$variable}=‘ford’;

   $coche{ &obtenerClave };

   $coche{ $clave+‘_key’};

Al hacer $coch{‘marca’} = ‘ford’

   Si la clave no existe, se crea y se le asigna el valor ‘ford’

   Si la clave ya existe, se sobreescribe el valor.

Si se recupera una clave que no existe, se obtiene    undef.
Definiendo un hash
       Para referirnos al hash completo utilizamos el
       símbolo %, igual que para referirnos a un array
       utilizábamos @

          %choche

       Podemos convertir un hash en una lista y una lista
       en un hash:

1.%some_hash = ('foo', 35, 'bar', 12.4, 2.5, 'hola', 'wilma',
  1.72e30, 'pedro', "adiosn");
Hash en contexto de
            lista

     Un hash en contexto de lista es una lista de
     parejas clave valor



1.                  @coche = %coche
Hash en contexto de
               lista

       ¿Qué hace la siguiente línea de código?




1.%coche_invertido = reverse %coche
“The Big Arrow”


       Otra forma de inicializar los hashes en perl



1.my %coche = (
2.    'marca' => 'ford',
3.    'modelo' => ‘scort’,
4.    'puertas' => 5,
5.    'potencia' => '140cv',
6.);
Funciones

keys

 Devuelve una lista con las claves de un
 hash

values

 Devuelve una lista con los valores de un
 hash
Ejercicio

Escribir una función en perl (printHash) que
muestre por pantalla un hash con el siguiente
formato:

clave1        =>          valor1
clave2        =>          valor2
clave3        =>          valor3
Funciones
each

 Esta función devuelve en cada llamada una
 pareja clave/valor como una lista de dos
 elementos

 Con cada llamada, la función devuelve una
 nueva pareja clave valor

 Cuando termina (no quedan más elementos)
 se devuelve una lista vacía
Funciones

        each


while ( ($key, $value) = each %hash ) {
    print "$key => $valuen";
}
Funciones

        exists

           Devuelve verdadero si la clave existe y
           falso en caso contrario


if (exists $coche{"marca"}) {
    print "Marca: $coche{‘marca’}n";
}
Funciones
        delete

           Elimina una clave del hash (y su
           correspondiente valor)

           Si la clave no existe, no da ni error ni
           warning.

my $clave = "modelo";
delete $coche{$modelo};
El hash %ENV


Almacena las variables de entorno.

Escribir un script en perl que lo muestre por
pantalla.

Más contenido relacionado

La actualidad más candente

Wp config.php
Wp config.phpWp config.php
Wp config.phpgregozz
 
Mantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHPMantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHPOVAWEB
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoSpacetoshare
 
Funciones con ficheros
Funciones con ficherosFunciones con ficheros
Funciones con ficherosjbersosa
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4pokerpc
 
Manual script usuarios masivos
Manual script usuarios masivosManual script usuarios masivos
Manual script usuarios masivosYimy Pérez Medina
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPressAsier Marqués
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Asier Marqués
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de phpangie barre
 
Capítulo 6 Qbasic manipulación de cadenas de texto
Capítulo 6 Qbasic  manipulación de cadenas de textoCapítulo 6 Qbasic  manipulación de cadenas de texto
Capítulo 6 Qbasic manipulación de cadenas de textoJulio Ayala Rolón
 

La actualidad más candente (20)

PHP Y MYSQL
PHP Y MYSQLPHP Y MYSQL
PHP Y MYSQL
 
32773 php-basico
32773 php-basico32773 php-basico
32773 php-basico
 
Wp config.php
Wp config.phpWp config.php
Wp config.php
 
Zen AJAX - Programador PHP
Zen AJAX - Programador PHPZen AJAX - Programador PHP
Zen AJAX - Programador PHP
 
3 curso php
3 curso php3 curso php
3 curso php
 
Sumaoctal
SumaoctalSumaoctal
Sumaoctal
 
Php Basico
Php BasicoPhp Basico
Php Basico
 
Php1
Php1Php1
Php1
 
Mantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHPMantener valores en los campos de texto de un formulario PHP
Mantener valores en los campos de texto de un formulario PHP
 
PHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básicoPHP Tema 2 - Lenguaje PHP básico
PHP Tema 2 - Lenguaje PHP básico
 
Funciones con ficheros
Funciones con ficherosFunciones con ficheros
Funciones con ficheros
 
Php1
Php1Php1
Php1
 
PresentacióN 4
PresentacióN 4PresentacióN 4
PresentacióN 4
 
Manual script usuarios masivos
Manual script usuarios masivosManual script usuarios masivos
Manual script usuarios masivos
 
Tema2 3
Tema2 3Tema2 3
Tema2 3
 
WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPress
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
Exposicion de php
Exposicion de phpExposicion de php
Exposicion de php
 
Capítulo 6 Qbasic manipulación de cadenas de texto
Capítulo 6 Qbasic  manipulación de cadenas de textoCapítulo 6 Qbasic  manipulación de cadenas de texto
Capítulo 6 Qbasic manipulación de cadenas de texto
 

Destacado

Art - web based presentation
Art - web based presentationArt - web based presentation
Art - web based presentationFieryCelt
 
Prevalence of impacted canines in Arab Population
Prevalence of impacted canines in Arab PopulationPrevalence of impacted canines in Arab Population
Prevalence of impacted canines in Arab PopulationAbu-Hussein Muhamad
 
Nexhat ibrahimi abdul vehabi dhe vehabizmi ne driten e provave
Nexhat ibrahimi   abdul vehabi dhe vehabizmi ne driten e provaveNexhat ibrahimi   abdul vehabi dhe vehabizmi ne driten e provave
Nexhat ibrahimi abdul vehabi dhe vehabizmi ne driten e provaveLibra Islame
 
Accomplish anything-you-want
Accomplish anything-you-wantAccomplish anything-you-want
Accomplish anything-you-wantAngela Peavy
 
Dealfolio Digest 1-15 April 2015
Dealfolio Digest 1-15 April 2015Dealfolio Digest 1-15 April 2015
Dealfolio Digest 1-15 April 2015Lisa Saldana
 
Generalidades acerca de las tic y la formacion docente
Generalidades acerca de las tic y la formacion docenteGeneralidades acerca de las tic y la formacion docente
Generalidades acerca de las tic y la formacion docenteMariel Castaños
 
Sabores Lo Barnechea- Plataforma Colaboración Gestión Gastronómica
Sabores Lo Barnechea- Plataforma Colaboración Gestión GastronómicaSabores Lo Barnechea- Plataforma Colaboración Gestión Gastronómica
Sabores Lo Barnechea- Plataforma Colaboración Gestión GastronómicaRicardo Pupkin C.
 
Heritage Auctions Texana Auction Catalog #6067
Heritage Auctions Texana Auction Catalog #6067Heritage Auctions Texana Auction Catalog #6067
Heritage Auctions Texana Auction Catalog #6067Heritage Auctions
 
307. adopta un abuelo y cambiale la vida
307. adopta un abuelo y cambiale la vida307. adopta un abuelo y cambiale la vida
307. adopta un abuelo y cambiale la vidadec-admin2
 
SIDIII 1º versão artigo leonor corte real
SIDIII 1º versão artigo leonor corte realSIDIII 1º versão artigo leonor corte real
SIDIII 1º versão artigo leonor corte realMaria Joao Loureiro
 
Course overview
Course overviewCourse overview
Course overviewViettel
 
ORIGEN DEL DÍA DEL PADRE
ORIGEN DEL DÍA DEL PADREORIGEN DEL DÍA DEL PADRE
ORIGEN DEL DÍA DEL PADREasociacion
 
Using the mobile_phone_in_school
Using the mobile_phone_in_schoolUsing the mobile_phone_in_school
Using the mobile_phone_in_schoolPedro De Bruyckere
 
Samurai Game - Global Corporate
Samurai Game - Global CorporateSamurai Game - Global Corporate
Samurai Game - Global CorporateGlobal Corporate
 

Destacado (20)

Art - web based presentation
Art - web based presentationArt - web based presentation
Art - web based presentation
 
Prevalence of impacted canines in Arab Population
Prevalence of impacted canines in Arab PopulationPrevalence of impacted canines in Arab Population
Prevalence of impacted canines in Arab Population
 
Nexhat ibrahimi abdul vehabi dhe vehabizmi ne driten e provave
Nexhat ibrahimi   abdul vehabi dhe vehabizmi ne driten e provaveNexhat ibrahimi   abdul vehabi dhe vehabizmi ne driten e provave
Nexhat ibrahimi abdul vehabi dhe vehabizmi ne driten e provave
 
Anime
AnimeAnime
Anime
 
Accomplish anything-you-want
Accomplish anything-you-wantAccomplish anything-you-want
Accomplish anything-you-want
 
1 10 proporciones
1 10 proporciones1 10 proporciones
1 10 proporciones
 
Dealfolio Digest 1-15 April 2015
Dealfolio Digest 1-15 April 2015Dealfolio Digest 1-15 April 2015
Dealfolio Digest 1-15 April 2015
 
Generalidades acerca de las tic y la formacion docente
Generalidades acerca de las tic y la formacion docenteGeneralidades acerca de las tic y la formacion docente
Generalidades acerca de las tic y la formacion docente
 
Sabores Lo Barnechea- Plataforma Colaboración Gestión Gastronómica
Sabores Lo Barnechea- Plataforma Colaboración Gestión GastronómicaSabores Lo Barnechea- Plataforma Colaboración Gestión Gastronómica
Sabores Lo Barnechea- Plataforma Colaboración Gestión Gastronómica
 
Heritage Auctions Texana Auction Catalog #6067
Heritage Auctions Texana Auction Catalog #6067Heritage Auctions Texana Auction Catalog #6067
Heritage Auctions Texana Auction Catalog #6067
 
307. adopta un abuelo y cambiale la vida
307. adopta un abuelo y cambiale la vida307. adopta un abuelo y cambiale la vida
307. adopta un abuelo y cambiale la vida
 
SIDIII 1º versão artigo leonor corte real
SIDIII 1º versão artigo leonor corte realSIDIII 1º versão artigo leonor corte real
SIDIII 1º versão artigo leonor corte real
 
Course overview
Course overviewCourse overview
Course overview
 
Carta abierta a la dirección de eitb
Carta abierta a la dirección de eitbCarta abierta a la dirección de eitb
Carta abierta a la dirección de eitb
 
Portfolio @ País Positivo #42
Portfolio @ País Positivo #42Portfolio @ País Positivo #42
Portfolio @ País Positivo #42
 
ORIGEN DEL DÍA DEL PADRE
ORIGEN DEL DÍA DEL PADREORIGEN DEL DÍA DEL PADRE
ORIGEN DEL DÍA DEL PADRE
 
Sigüenza
SigüenzaSigüenza
Sigüenza
 
DG9. Hard & Soft Security
DG9. Hard & Soft SecurityDG9. Hard & Soft Security
DG9. Hard & Soft Security
 
Using the mobile_phone_in_school
Using the mobile_phone_in_schoolUsing the mobile_phone_in_school
Using the mobile_phone_in_school
 
Samurai Game - Global Corporate
Samurai Game - Global CorporateSamurai Game - Global Corporate
Samurai Game - Global Corporate
 

Similar a Perl5 hashes (20)

PHP: Arrays
PHP: ArraysPHP: Arrays
PHP: Arrays
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Php
PhpPhp
Php
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Tema2[php]
Tema2[php]Tema2[php]
Tema2[php]
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Programacion php
Programacion phpProgramacion php
Programacion php
 
Elementos del Hardware y Software
Elementos del Hardware y SoftwareElementos del Hardware y Software
Elementos del Hardware y Software
 
Perl (practical extraction and report language)
Perl (practical extraction and report language)Perl (practical extraction and report language)
Perl (practical extraction and report language)
 
Guia programacionwebbasicophp
Guia programacionwebbasicophpGuia programacionwebbasicophp
Guia programacionwebbasicophp
 
0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf0139-php-y-mysql-lenguaje-php-basico.pdf
0139-php-y-mysql-lenguaje-php-basico.pdf
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
Ensayo iv
Ensayo ivEnsayo iv
Ensayo iv
 
Proyectos Web 3 Introduccion Php
Proyectos Web   3 Introduccion PhpProyectos Web   3 Introduccion Php
Proyectos Web 3 Introduccion Php
 
Php
PhpPhp
Php
 
Curso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en DrupalCurso Drupal. Creacion de modulos en Drupal
Curso Drupal. Creacion de modulos en Drupal
 
Presentacion
PresentacionPresentacion
Presentacion
 
Clase 2 de PHP
Clase 2 de PHPClase 2 de PHP
Clase 2 de PHP
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Manual basico de PHP
Manual basico de PHPManual basico de PHP
Manual basico de PHP
 

Más de Alfonso Alba

Bienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataBienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataAlfonso Alba
 
Persistencia de datos con Parse
Persistencia de datos con ParsePersistencia de datos con Parse
Persistencia de datos con ParseAlfonso Alba
 
Perl6 expresiones regulares
Perl6 expresiones regularesPerl6 expresiones regulares
Perl6 expresiones regularesAlfonso Alba
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Alfonso Alba
 

Más de Alfonso Alba (10)

Bienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core DataBienvenido a la republica independiente de las pruebas unitarias con Core Data
Bienvenido a la republica independiente de las pruebas unitarias con Core Data
 
Persistencia de datos con Parse
Persistencia de datos con ParsePersistencia de datos con Parse
Persistencia de datos con Parse
 
Usuarios ipad
Usuarios ipadUsuarios ipad
Usuarios ipad
 
Git
GitGit
Git
 
Perl6 expresiones regulares
Perl6 expresiones regularesPerl6 expresiones regulares
Perl6 expresiones regulares
 
Perl1 escalares
Perl1 escalaresPerl1 escalares
Perl1 escalares
 
Perl2 arrays
Perl2 arraysPerl2 arrays
Perl2 arrays
 
Perl3 subrutinas
Perl3 subrutinasPerl3 subrutinas
Perl3 subrutinas
 
Perl4 io
Perl4 ioPerl4 io
Perl4 io
 
Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01Plantillajornadasversion2 100708010347-phpapp01
Plantillajornadasversion2 100708010347-phpapp01
 

Último

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 

Último (20)

SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

Perl5 hashes

  • 2. ¿Qué es un hash? Estructura de datos que permite almacenar un número indeterminado de datos indexados por nombre. Es como un array en el que sustituimos el índice numérico por una cadena.
  • 3. ¿Qué es un hash?
  • 4. ¿Qué es un hash? Supongamos que queremos almacenar la siguiente información de un coche: marca, modelo, numero de puertas y potencia.
  • 5. ¿Qué es un hash? Supongamos que queremos almacenar la siguiente información de un coche: marca, modelo, numero de puertas y potencia. $coche[0]=‘ford’ $coche[1]=‘scort’ $coche[2]=5 $coche[3]=‘150cv’
  • 6. ¿Qué es un hash? Supongamos que queremos almacenar la siguiente información de un coche: marca, modelo, numero de puertas y potencia. $coche[0]=‘ford’ $coche[1]=‘scort’ $coche[2]=5 $coche[3]=‘150cv’ Problema: nos tenemos que acordar de qué significa cada índice.
  • 7. ¿Qué es un hash? Supongamos que queremos almacenar la siguiente información de un coche: marca, modelo, numero de puertas y potencia. $coche[0]=‘ford’ $coche[1]=‘scort’ $coche[2]=5 $coche[3]=‘150cv’ Problema: nos tenemos que acordar de qué significa cada índice. Problema aún peor: si no lo documentamos, el programador que tenga que revisar vuestro código dos años después no creo que os tenga en muy buena estima.
  • 8. ¿Qué es un hash? Accediendo al elemento de un hash: $coche{‘marca’} = ‘ford’
  • 9. ¿Qué es un hash? $ porque en un elemento de un hash almacenamos un escalar clave valor Accediendo al elemento de un hash: $coche{‘marca’} = ‘ford’ identificador (nombre del hash)
  • 10. ¿Qué es un hash?
  • 11. ¿Qué es un hash? La clave puede ser una expresión perl:
  • 12. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’;
  • 13. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’; $coche{ &obtenerClave };
  • 14. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’; $coche{ &obtenerClave }; $coche{ $clave+‘_key’};
  • 15. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’; $coche{ &obtenerClave }; $coche{ $clave+‘_key’}; Al hacer $coch{‘marca’} = ‘ford’
  • 16. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’; $coche{ &obtenerClave }; $coche{ $clave+‘_key’}; Al hacer $coch{‘marca’} = ‘ford’ Si la clave no existe, se crea y se le asigna el valor ‘ford’
  • 17. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’; $coche{ &obtenerClave }; $coche{ $clave+‘_key’}; Al hacer $coch{‘marca’} = ‘ford’ Si la clave no existe, se crea y se le asigna el valor ‘ford’ Si la clave ya existe, se sobreescribe el valor.
  • 18. ¿Qué es un hash? La clave puede ser una expresión perl: $coche{$variable}=‘ford’; $coche{ &obtenerClave }; $coche{ $clave+‘_key’}; Al hacer $coch{‘marca’} = ‘ford’ Si la clave no existe, se crea y se le asigna el valor ‘ford’ Si la clave ya existe, se sobreescribe el valor. Si se recupera una clave que no existe, se obtiene undef.
  • 19. Definiendo un hash Para referirnos al hash completo utilizamos el símbolo %, igual que para referirnos a un array utilizábamos @ %choche Podemos convertir un hash en una lista y una lista en un hash: 1.%some_hash = ('foo', 35, 'bar', 12.4, 2.5, 'hola', 'wilma', 1.72e30, 'pedro', "adiosn");
  • 20. Hash en contexto de lista Un hash en contexto de lista es una lista de parejas clave valor 1. @coche = %coche
  • 21. Hash en contexto de lista ¿Qué hace la siguiente línea de código? 1.%coche_invertido = reverse %coche
  • 22. “The Big Arrow” Otra forma de inicializar los hashes en perl 1.my %coche = ( 2. 'marca' => 'ford', 3. 'modelo' => ‘scort’, 4. 'puertas' => 5, 5. 'potencia' => '140cv', 6.);
  • 23. Funciones keys Devuelve una lista con las claves de un hash values Devuelve una lista con los valores de un hash
  • 24. Ejercicio Escribir una función en perl (printHash) que muestre por pantalla un hash con el siguiente formato: clave1 => valor1 clave2 => valor2 clave3 => valor3
  • 25. Funciones each Esta función devuelve en cada llamada una pareja clave/valor como una lista de dos elementos Con cada llamada, la función devuelve una nueva pareja clave valor Cuando termina (no quedan más elementos) se devuelve una lista vacía
  • 26. Funciones each while ( ($key, $value) = each %hash ) { print "$key => $valuen"; }
  • 27. Funciones exists Devuelve verdadero si la clave existe y falso en caso contrario if (exists $coche{"marca"}) { print "Marca: $coche{‘marca’}n"; }
  • 28. Funciones delete Elimina una clave del hash (y su correspondiente valor) Si la clave no existe, no da ni error ni warning. my $clave = "modelo"; delete $coche{$modelo};
  • 29. El hash %ENV Almacena las variables de entorno. Escribir un script en perl que lo muestre por pantalla.

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. ver ejemplo hashes1.pl\n\nIndicar que el orden del array es el que más le convenga a perl internamente para almacenar el hash (y además lo hace de forma que no se pueda predecir para evitar posibles ataques)\n
  21. ejecutar: hashes2.pl\n
  22. Se pueden omitir las comillas de las claves siempre que estas consistan en letras, numeros y guiones bajos.\n
  23. \n
  24. ver printhash.pl\n
  25. \n
  26. EJERCICIO: repetir el ejercicio anterior pero con la función each. ver script printhash_each.pl\n\niteración 1: se asigna la primera pareja clave-valor a las variables $ke y $value.\nEl resultado de una asignación en ámbito escalar es el número de elementos que se asignan, en este caso 2. como dos es verdaderos (!=0) se ejecuta el cuerpo del bucle\niteraciones siguientes: se van asignando de esta forma hasta que se termina\ncuando no quedan más elementos para asignar, la asignación de lista en entorno escalar devuelve cero y se sale del buble. Las variables $key y $value valen undef. \n
  27. \n
  28. No es lo mismo borrar una clave que asignarle un valor undef. Ver script hashes3.pl\n
  29. ver env.pl\n