Basicos - Funciones imprescindibles para la vida moderna


__top


NAME

Basicos - Funciones imprescindibles para la vida moderna

__top


SYNOPSIS

    use Basicos qw(:DEFAULT);
    
=head1  DESCRIPTION

Este paquete incluye todas las pequeñas funciones que acarreamos de un lado a otro y que no arrastran a módulos mayores y desconocidos en el programa.

_normalize_hash - transforma en un hash una lista de parámetros

        sub my_function {
                my $ref_hash = normalize_hash(@_);
                ...
        
        }
        
La función _normalize_hash toma una lista de parámetros e intenta
transformarlo en una referencia a un hash.

Si recibe una lista con un único elemento, construye un hash con él como valor y una clave denominada 'UNIQUE'.

Si recibe una referencia a un hash, la retorna sin más.

En caso contrario asume que es una lista de N elementos y construye una referencia a un hash y la devuelve.

_extract_fields()

    my %data = ( 
        campo1  =>  '1',
        campo2  =>  'hola',
        campo3  =>  0.90
        );
    my @values = _extract_fields( \%data, qw(campo3 campo1 campo4) );

_union_hash()

    my %c = _union_hash(\%a, \%b);
    my $ref_c = _union_hash(\%a, \%b);
    
=cut

sub _union_hash { my $hash_a = shift; my $hash_b = shift; my $c;

    $c = _recurse_union_hash ($hash_a, $hash_b);
    return wantarray ? %{$c} : $c;
}

sub _recurse_union_hash { my $a = shift; my $b = shift; my $c = {};


    if (defined($a)) {
        foreach my $k (keys %{$a}) {
            if (ref($a->{$k}) eq 'HASH') {
                $c->{$k} = _recurse_union_hash($a->{$k},$b->{$k});
            } else {                
                $c->{$k} = $a->{$k};
            }
        }
    }
    if (defined($b)) {
        foreach my $k (keys %{$b}) {
            if (ref($b->{$k}) eq 'HASH') {
                $c->{$k} = _recurse_union_hash($a->{$k}, $b->{$k});
            } else {
                $c->{$k} = $b->{$k};
            }
        }
    }
    
    return $c;
}

_hash_defaults

    my %defaults = (
        overwrite => 1,
        perms => 'rw-r--r--'
    );        
    my $params = _hash_defaults( \%defaults, @_);

Lee una lista de parámetros en un hash, la compara con otra que contiene valores predeterminados y retorna el resultado de mezclar ambas.

Parámetros

\%predeterminados

Hash con los valores predeterminados.

@parametros

Hash ó referencia a un hash con los parámetros recibidos. Puede estar vacía.

Resultados

Referencia a un hash con los parámetros fusionados.

_build_path

    my $path = _build_path ( %parts );

Construye lo más correctamente que puede una ruta de acceso a un archivo, teniendo en cuenta las diferentes partes que se le han proporcionado.

Parámetros

Los parámetros pueden ser tanto un hash como una referencia a un hash, y sus claves las siguientes:

dir

Directorio de partida

name

Nombre del fichero

ext

Nombre de la extensión

Resultados

Ruta producida o un valor nulo si ha habido algún error.

_build_path

    my $path = _build_path ( %parts );

Construye lo más correctamente que puede una ruta de acceso a un archivo, teniendo en cuenta las diferentes partes que se le han proporcionado.

Parámetros

Los parámetros pueden ser tanto un hash como una referencia a un hash, y sus claves las siguientes:

dir

Directorio de partida

name

Nombre del fichero

ext

Nombre de la extensión

Resultados

Ruta producida o un valor nulo si ha habido algún error.

_name_in_tree

    my %arbol = (
        'a'     =>      {
            'b'     =>      {
                'c'     =>      {
                    'd'     =>      q(hola)
                }
            }
        }
    };
    
    my $elem = _name_in_tree(\%arbol, "a.b.c.d");

Localiza un elemento de un árbol (formado por tablas hash) según un nombre.

Parámetros

Arbol; Referencia una tabla hash que representa la raíz del árbol donde buscar
Nombre: Texto conteniendo los distintos niveles del árbol, separados por un punto (.)

Resultados

Referencia al elemento (sea cual sea éste) ó un valor nulo si no se localiza.

_build_in_tree

    _build_in_tree(\%arbol, "a.b.c.d", $value);

Construye los diferentes elementos de un árbol de hashes hasta conseguir asignar el valor correspondiente en el último de ellos.

Si el elemento existe, obviamente, no se construye nada.

Parámetros

\%arbol

Referencia a la raíz del árbol

$nombre

Ruta al elemento formada por nombres separados por el carácter punto (.).

$valor

Valor a asignar directamente al último de ellos.

Resultados

Verdadero si no hay problemas y falso si existen errores.

_msgx

    my $mensaje = _msgx('Yo soy {nombre} y tengo {edad} años',
                        'nombre' => q(coco), 
                        'edad' => 500 );

Recibe un texto con ciertas claves encerradas entre llaves y un hash conteniendo valores para esas claves, y sustituye en el texto dichos valores.

Parámetros

Texto
Lista de claves y valores

Resultados

Texto producido

__top


BUGS

__top


AUTHOR

(c) Copyright Víctor Moral <victor@taquiones.net>

__top


SEE ALSO

__top


LICENSE

Este programa está bajo licencia GPL (ver perlgpl) y puede distribuirse y/ó modificarse bajo los términos en ella descritos.

__top

 Basicos - Funciones imprescindibles para la vida moderna