Cuando obtenemos resultados de costosos cálculos computacionales los guardamos para poder volver a usarlos sin tener que calcularlos de nuevo.
Normalmente se guardan en archivos de texto con el formato deseado. Pero hay veces que nos interesa guardar los resultados tal y como los guardamos temporalmente en una variable de perl mientras son procesados.
Guardar una variable intermedia de un script de perl en un archivo puede tener las siguientes utilidades:
Normalmente se guardan en archivos de texto con el formato deseado. Pero hay veces que nos interesa guardar los resultados tal y como los guardamos temporalmente en una variable de perl mientras son procesados.
Guardar una variable intermedia de un script de perl en un archivo puede tener las siguientes utilidades:
- No perder ninguna información del procesado de los datos.
- Poder importar la variable rápidamente al volver a correr el script.
- Revisar los datos contenidos por la variable de una forma sencilla.
use Data::Dumper;
my $data = {
'Research Centers' => {
'EEAD-CSIC' => [
{
'Group' => 'Laboratory of Computational Biology',
'Address' => 'Av. Montañana 1.005, 50059 Zaragoza (Spain)',
'Phone' => '+34 976716089'
},
{
'Group' => 'Genética y Desarrollo de Materiales Vegetales',
'Address' => 'Av. Montañana 1.005, 50059 Zaragoza (Spain)',
'Phone' => '+34 976716079'
}
]
}
};
my $file = 'backup.txt';
store_data($data, $file);
my $recovered_data = recover_data($file);
print $recovered_data->{'Research Centers'}{'EEAD-CSIC'}[0]{'Group'}."\n";
print $recovered_data->{'Research Centers'}{'EEAD-CSIC'}[0]{'Address'}."\n";
print $recovered_data->{'Research Centers'}{'EEAD-CSIC'}[0]{'Phone'}."\n";
# Stores data from a variable into a file
sub store_data {
my ($data, $file) = @_;
open(FILE, ">$file");
print FILE Dumper($data);
close FILE;
}
# Recovers data from a file into a variable
sub recover_data {
my ($file) = @_;
return do $file;
}
Hay varios módulos en Perl que realizan esta operación, llamada Serialización, como por ejemplo Storable.
ResponderEliminarhttp://en.wikipedia.org/wiki/Serialization#Perl
Otra aplicación para esta operación es la de poder "mover" estas estructuras a través de las redes de datos, con lo que dos o más programas podrían intercambiar información o estado.