Dados :: Reutilização

Compartilhar valores constantes com dados :: Alias
Baixe Agora

Dados :: Reutilização Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Elizabeth Mattijsen
  • Site do editor:
  • http://search.cpan.org/~elizabeth/

Dados :: Reutilização Tag


Dados :: Reutilização Descrição

Compartilhe valores constantes com dados :: Alias Por padrão, a Perl não compartilha valores literais (0, "foo", "bar"). Isso porque uma vez que um valor literal é armazenado em variável (um contêiner), o conteúdo desse contêiner pode ser alterado. Mesmo que tal contêiner esteja marcado como "somente leitura" (por exemplo, com um módulo como escalar :: readonly), ele não fará com que os valores sejam compartilhados. Portanto, cada ocorrência do mesmo valor literal tem seu próprio local de memória, mesmo que seja marcado internamente como read-only.in um mundo ideal, o Perl manteria uma única cópia de cada valor literal (contêiner) e terá todas as ocorrências no ponto de memória para o mesmo recipiente. Quando uma tentativa é feita para alterar o contêiner, o Perl fazia uma cópia do contêiner e colocou o novo valor lá. Este princípio é geralmente referido como cópia-on-write (vaca). Infelizmente, a Perl não tem isso no módulo Data :: Alias que permite compartilhar contêineres entre diferentes variáveis (entre outras coisas). Mas ainda não permite que você tenha valores literais compartilham as mesmas localizações de memória.data ::reuse é um módulo Perl que permite que você tenha facilmente os valores literais e somente leitura compartilham o mesmo endereço de memória. O que pode economizar muita memória quando você estiver trabalhando com grandes estruturas de dados com valores semelhantes. O que é especialmente bom em um ambiente mod_perl, onde o uso de memória de processos persistentes é um dos principais problemas .. de curso, nenhuma economia de memória ocorrerá por valores literais que ocorrem apenas uma vez. Portanto, é importante que você use a funcionalidade deste módulo com sabedoria, apenas em valores que você espera ser duplicado pelo menos duas vezes.synopsis Use dados :: Reutilização QW (Fixate); Fixar meu @array => (0, 1, 2, 3); # inicializar e fixar meu @Fillill_array = (0, 1, 2, 3); Fixate @Fillill_Array; # Fixate valores existentes Imprimir \ $ array == \ $ Cheio_Array ? "Compartilhar memória \ n": "Não compartilhe memória \ n"; fixar meu% hash => (zero => 0, um => 1, dois => 2, três => 3); meu% preenchido_hash = (zero => 0, um => 1, dois => 2, três => 3); Fixate% preenchido_Hash; Imprimir \ $ hash {zero} == \ $ preenchido_hash {zero}? "Compartilhar memória \ n": "Não compartilhe memória \ n"; Use dados :: Reutilização QW (Reutilização); Reutilize meu $ listref = ; Reutilizar meu $ hashref = {zero => 0, um => 1, dois => 2, três => 3}; Imprimir \ $ listref -> == \ $ hashref -> {zero}? "Compartilhar memória \ n": "Não compartilhe memória \ n"; Use dados :: Alias QW (Alias); Use dados :: Reutilização QW (Reutilização); alias meu @foo = reutilização (0, 1, 2, 3); Imprimir \ $ foo == \ $ hashref -> {zero}? "Compartilhar memória \ n": "Não compartilhe memória \ n"; Use dados :: Reutilização QW (Spread); Espalhe meu% Spread_Hash => UNDEF, QW (Foo Bar Baz); Imprimir \ $ spread_hash {foo} == \ $ spread_hash {bar}? "Compartilhar memória \ n": "Não compartilhe memória \ n"; Espalhe meu @spread_array => 1, 0. 3; Imprimir \ $ spread_array == \ $ spread_array ? "Compartilhar memória \ n": "Não compartilhe memória \ n"; Use dados :: Reutilização QW (esqueça); esquecer(); # Memória livre usada para rastrear os requisitos de valores constantes: · Perl.


Dados :: Reutilização Software Relacionado

filtrounit.

permite que os testes unitários sejam criados para programas de linha de comando ...

125

Download