| Tie :: Hashistory. Tie :: Hashhistory pode rastrear o histórico de todas as alterações em um hash amarrado. |
Baixe Agora |
Tie :: Hashistory. Classificação e resumo
- Licença:
- Perl Artistic License
- Nome do editor:
- Mark-Jason Dominus, Plover Systems
- Site do editor:
- http://search.cpan.org/~mjd/Tie-HashHistory-0.03/HashHistory.pm
Tie :: Hashistory. Tag
Tie :: Hashistory. Descrição
Tie :: Hashhistory pode rastrear a história de todas as alterações em um hash amarrado. Tie :: Hashistory pode rastrear a história de todas as alterações em um hash.synopsis amarrado My $ hh = tie% hash => gravata :: hashhistory, pacote, args ...; @Values = $ hh-> Histórico (chave); Tie :: Hashhistory se interpõe entre o seu programa e outro hash amarrado. Buscando e armazenando para o hash parece completamente normal, mas amarre :: hashhistory está mantendo um registro de todas as mudanças em cada chave, e pode amarrar :: hashhistory lhe dará uma lista de todos os valores que a chave já teve, em Ordem cronológica.Os argumentos para a ligação devem ser empate :: Hashistory, e então os argumentos que você teria dado para empatar para amarrar o hash sem o recurso de história. Por exemplo, suponha que você quisesse armazenar seus dados do HASH em um arquivo NDBM nomeado no banco de dados. Normalmente, você diria: tie% hash => ndbm_file, 'banco de dados', $ flags, $ mode, para obter este recurso de histórico, basta adicionar empate :: hashhistory antes de ndbm_file: meu $ hh = tie% hash => laço :: Hashhistory, ndbm_file, 'banco de dados', $ flags, $ mode; os dados ainda serão armazenados no banco de dados e ainda será um arquivo ndbm. Toda a busca e armazenamento ficarão iguais, mas o histórico de alterações de cada tecla estará disponível. A chamada de gravata retornará um objeto; Para descobrir o histórico de uma chave, use o método de histórico neste objeto. É preciso um argumento, que é uma string chave. Devolverá uma lista de todos os valores que já foram associados à chave, em ordem cronológica, começando com as mais recentes. Por exemplo: $ hash {a} = 'primeiro'; $ hash {b} = 'segundo'; $ hash {a} = 'terceiro'; # Sobrescreve o valor antigo # imprime "terceiro segundo" como você esperaria imprimir "$ hash {a} $ hash {b} n"; @Values = $ hh-> História ('A'); # @Values agora contém (terceiro ',' primeiro ') @Values = $ hh-> Histórico (' B '); # @Values agora contém ('segundo') atualmente, se chamado em contexto escalar, o método History () retornará o número de itens no histórico. Esse comportamento pode mudar em versões futuras. O hash subjacente pode ser qualquer aula de hash amarrada. Para usar um hash regular em memória, use empate :: Stdhash (distribuído com Perl) como a implementação subjacente: use empate :: Hash; # * Não gravata :: stdhash * meu $ hh = tie% hash => gravata :: hashhistory, empate :: stdashash; isso não é tão eficiente quanto poderia ser porque os busca e lojas em% hash ainda passam por duas camadas de . Eu posso consertar isso em uma versão futura. Requisitos: · Perl.
Tie :: Hashistory. Software Relacionado