1. Inicio
  2. Tecnologia
  3. Perl
  4. Manejo de Hash

Manejo de Hash

Un Hash o arreglo asociativo en Perl es una estructura de datos, que permite asociar una clave con un valor, comunmente denominado pareja clave/valor. Es importante señalar que las parejas clave/valor no están ordenadas según un criterio específico dentro del Hash.

Crear e inicializar un Hash

my %hash = ();
my $hash_ref = {};
my %hash = (nombre => 'Pedro', apellido => 'Perez');
my %hash_ref = {nombre => 'Pedro', apellido => 'Perez'};
my %autor = (
'nombre'   => "Mario",
'cargo'      => "Administrador"
);

my $hash_ref = \%autor;


</div>

<div class='pageitem'>  

Borrar valores de un Hash

delete $hash{$clave}
delete $hash_ref->{$clave};
delete $hash{$_} for (keys %hash);
delete $hash_ref->{$_} for (keys %$hash_ref);

Agregar valores a un Hash

$hash{nombre} = 'Pedro';
$clave = 'nombre';
$valor = 'Pedro';
$hash{$clave} = $valor;
 %hash = (nombre => 'Pedro', apellido => 'Perez');

Copiar un Hash

my %hash_copia = %hash_original;
my $hash_ref_copia =$hash_ref_original;

Obtener cada par clave/valor de un Hash

while ( my ($clave, $valor) = each(%hash) ) {
        print "$clave => $valor\n";
    }
for my $clave ( keys %hash ) {
        my $valor = $hash{$clave};
        print "$clave => $valor\n";
    }
print map "$_ = $hash{$_}\n", keys %hash
while ( my ($clave, $valor) = each(% {$hash_ref}) ) {
        print "$clave => $valor\n";
    }

Obtener el tamaño de un Hash

print "Tamaño del hash: " . keys(%hash) . "\n";

Determinar si un valor existe en un Hash, si esta definido y si su valor es verdadero

print "El valor EXISTE, pero puede estar indefinido.\n"  if exists  $hash{ $clave };
print "El valor esta DEFINIDO, pero puede ser falso.\n"  if defined $hash{ $clave };
print "El valor EXISTE y es VERDADERO.\n"                if $hash{ $clave };