[SP-pm] Array? Hashes? Outros?
Marcio - Google
marciorp at gmail.com
Tue Mar 12 18:29:28 PDT 2013
Pessoal,
Primeiro, muito obrigado pela ajuda até aqui.
Bom, testei todas as dicas que não envolviam instalação de módulos. Em
principio gostei bastante do DB_File que o Eden sugeriu, pelo fato de que
se no futuro eu precisar manter os dados, e só dar um nome pro arquivo.
Nos dois exemplos esbarrei nas mesmas dificuldades, vou colocar o código
usando hash com o Marcio sugeriu pq tá mais organizado.
use strict;
use warnings;
$|=1;
# Inicializa
my $canais = {
canal_1 => {slot => 1, nome => "Canal 1", eqp => "ed871p09j4", ativo =>
1, nerros => 0, ntotal => 0, ulterro => ""},
canal_2 => {slot => 2, nome => "Canal 2", eqp => "ed871p09j4", ativo =>
1, nerros => 0, ntotal => 0, ulterro => ""},
canal_3 => {slot => 1, nome => "Canal 3", eqp => "ed871p09j5", ativo =>
1, nerros => 0, ntotal => 0, ulterro => ""},
canal_4 => {slot => 3, nome => "Canal 4", eqp => "ed871p09j2", ativo =>
1, nerros => 0, ntotal => 0, ulterro => ""}
};
# Inserir
$canais->{"canal_5"} = {slot => 0, nome => "Canal 5", eqp => "ed871p09j6",
ativo => 0, nerros => 3, ntotal => 7, ulterro => "2013-03-12 20:34:12"};
# Excluir
delete $canais->{"canal_3"};
# Lista os dados
foreach my $registro (keys %$canais) {
print "$registro\n";
print "Nome.: $canais->{$registro}{'nome'}\n";
print "Slot.: $canais->{$registro}{'slot'}\n";
print "Eqp..: $canais->{$registro}{'eqp'}\n";
print "Ativo: $canais->{$registro}{'ativo'}\n";
print "Erros: $canais->{$registro}{'nerros'}\n";
print "Total: $canais->{$registro}{'ntotal'}\n";
print "UltEr: $canais->{$registro}{'ulterro'}\n";
print "---------------\n";
}
Bom, as dúvidas e dificuldades são:
1. Como faço para alterar um "registro" sem precisar informar todas as
"colunas"? P.e.: $canais->{"canal_2"} = {ativo => 0}; não dá erro, só que
"perco" os outros dados (Nome, Eqp, Slot, etc);
2. Como pesquiso? P.e., como saber se já existe o "canal_8".
3. Qual a ordem do hash? Tem como ordenar? Não é um problema a ordem
"aleatória" que ele fica, isso é mais por curiosidade.
4. No foreach eu estou percorrendo todos os "registro" e imprimindo o
valor das "colunas", uma a uma. Tem como fazer um "foreach" na "colunas" do
"registro" e imprimir Nome_Da_Coluna = Valor_Da_Coluna?
[...]'s
Marcio
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130312/e9bbc0e1/attachment.html>
More information about the SaoPaulo-pm
mailing list