Introdução a Persistência de Estrutura de Dados em Perl
Publicado por Daniel Vinciguerra (última atualização em 08/03/2016)
[ Hits: 1.842 ]
Homepage: http://bivee.com.br
Às vezes identificamos a necessidade de guardar estrutura de dados, seja para transporte, para persistência, para processamento posterior, entre outros. Por isso existem inúmeras técnicas para se armazenar estrutura de dados, e para poder recuperá-las posteriormente, como data-dumper, storable, json, yaml, xml etc.
Hoje eu vou apresentar neste simples script uma dessas técnicas que se utiliza do modulo Storable para guardar a estrutura de dados para poder utilizar a mesma mais tarde.
OBS;: este é um script introdutório sobre o módulo, para dar apenas uma idéia sobre uma solução para possíveis problemas.
Caso precise de algo mais específico sobre este assunto, sugiro que dê uma olhada no módulo, para utilizar as funções que melhor se encaixam em seu cenário.
PRÉ-REQUISITOS:
- módulo IO::File (manipulação de arquivo)
- módulo Storable (persistência de estruturas de dados)
- módulo Data::Dumper (debug da estrutura de dados)
EXECUTANDO:
$ perl storage-freeze.pl
REFERÊNCIAS:
https://metacpan.org/pod/IO::File
https://metacpan.org/pod/Storable
https://metacpan.org/pod/Data::Dumper
#!/usr/bin/env perl # 2016 (c) Daniel Vinciguerra use utf8; use strict; use warnings; use IO::File; use Storable qw/freeze thaw/; use Data::Dumper; # arquivo de gravação my $FILE = 'database.dat'; # minha estrutura de dados simples my $usuario_list = [ { id => 1, nome => 'Foo', email => 'foo@email.com' }, { id => 2, nome => 'Bar', email => 'bar@email.com' }, { id => 3, nome => 'Baz', email => 'baz@email.com' }, ]; # DEBUG: mosta o estado inicial da estrutura de dados print "- Estrutura de Dados: \n" . Dumper($usuario_list); # serializando a estrutura de dados my $serialized = freeze $usuario_list; # gravando a estrutura serializada em um arquivo my $fout = IO::File->new($FILE, 'w'); if(defined $fout){ print $fout "${serialized}"; $fout->close; } # limpando a variável que havia a estrutura de dados undef $usuario_list; # DEBUG: verifica o que existe na estrutura de dados print "- Estrutura de Dados: \n" . Dumper($usuario_list); # recuperando a estrutura serializada em um arquivo my $fin = IO::File->new($FILE, 'r'); if(defined $fin){ $usuario_list = thaw(join('',<$fin>)); $fin->close; } # DEBUG: mosta a estrutura de dados print "- Estrutura de Dados: \n" . Dumper($usuario_list);
Algoritmo de Fatoração de Fermat (FFA) em Perl
Nenhum comentário foi encontrado.
Links importantes de usuários do VOL (3)
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Criando um Pen Drive Bootável no Linux
Instalando Discord no Fedora 40
Instalando Discord no Ubuntu 24.04 LTS
Como instalar o XFCE4-terminal na sua distribuição Linux e integrá-lo ao sistema
Como instalar o Tilix Terminal no Gnome e usá-lo como menu drop-down ao estilo Quake
Alguém do ramo de educação por aqui? (4)
Google chrome e opera fechando (0)
problemas com artefatos na instalação (14)
Como instalar/atua... o Ubuntu sem formatar o HD? [RESOLVIDO] (2)