Filtrar :: Simples

Filter :: Simples Módulo permite filtragem de fontes simplificadas.
Baixe Agora

Filtrar :: Simples Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Damian Conway
  • Site do editor:
  • http://search.cpan.org/~dconway/

Filtrar :: Simples Tag


Filtrar :: Simples Descrição

Módulo de filtração :: Simple permite simplificado filtragem fonte. Filtro :: módulo simples permite simplificado fonte filtering.SYNOPSIS # em MyFilter.pm: MyFilter pacote; usar filtro :: Simple; FILTER {...}; # Ou apenas: # # use filtro :: sub Simples {...}; # No código do usuário: MyFilter uso; # Este código é filtrada sem MyFilter; # Este código é a filtragem notthe ProblemSource é um recurso imensamente poderoso das versões recentes do Perl. Ele permite estender a linguagem em si (por exemplo, o módulo Switch), para simplificar a linguagem (por exemplo Língua :: Pythonesque), ou completamente reformulada da língua (por exemplo Lingua :: Romana :: Perligata). Efetivamente, ele permite usar todo o poder de Perl como a sua própria, de forma recursiva aplicada, Language.The macro excelente Filtro :: módulo Util :: Call (por Paul Marquess) oferece uma interface Perl utilizável para filtragem de origem, mas muitas vezes é muito poderoso e não quase tão simples como poderia be.To usar o módulo é necessário fazer o seguinte: Baixar, construir e instalar o filtro :: módulo Util :: Chamada. (Se você tiver Perl 5.7.1 ou mais tarde, isso já é feito para você.) Configure um módulo que faz um filtro de uso :: Util :: Chamada. Dentro desse módulo, crie uma sub-rotina de importação. Dentro da sub-rotina de importação fazer uma chamada para filter_add, passando-o, quer uma referência sub-rotina. Dentro da referência sub-rotina, filter_read chamada ou filter_read_exact para "prime" $ _ com dados de código-fonte do arquivo de origem que usará seu módulo. Verifique o valor de status retornado para ver se qualquer código-fonte foi realmente lidos. Processar o conteúdo de $ _ para alterar o código fonte da maneira desejada. Devolver o valor de status. Se o ato de unimporting seu módulo (através de um não) deve causar código fonte filtragem cessar, crie uma sub-rotina unimport, e tê-lo chamar filter_del. Certifique-se de que a chamada para filter_read ou filter_read_exact no passo 5 não acidentalmente ler além do não. Eficazmente este filtros de código fonte limites para operação de linha-a-linha, a menos que a sub-rotina de importação faz alguma fantasia pré-pré-análise do código-fonte está filtrando. Por exemplo, aqui é um filtro de código fonte mínima em um módulo chamado BANG.pm. É simplesmente converte todas as ocorrências da sequência de Bangs + Bang para a matriz sequência 'Bang' $ Bang se em qualquer parte do código que se segue uma utilização Bang; declaração (até o próximo não BANG; declaração, se houver): pacote BANG; USE FILTRO :: UTIL :: Chamada; sub importação {filter_add (sub {my $ chamador = chamador; minha ($ status, $ no_seen, $ dados); while ($ status = filter_read ()) {if (/ ^ s * Nos + $ chamadores *;? s * $ /) {$ no_seen = 1; passado;}. $ data = $ _; $ _ = "";} $ _ = $ dados; s / Bangs + BANG / die 'BANG' se $ BANG / g, a menos que $ estatuto < 0; $ _ =. "nenhum $ classe; n" if $ no_seen; return 1;})} sub unimport {filter_del (); } 1; Este nível de sofisticação puts filtragem fora do alcance de muitos Filtro programmers.A SolutionThe :: módulo simples fornece uma interface simplificada para Filtro :: Util :: Chamada; um que é suficiente para a maioria cases.Instead comum do processo acima, com Filtro :: Simple a tarefa de criar um filtro de código-fonte é reduzido a: Baixe e instale o módulo Filtro :: Simple. (Se você tiver Perl 5.7.1 ou mais tarde, isso já é feito para você.) Configure um módulo que faz um filtro de uso :: Simple e depois chama FILTER {...}. Dentro da sub-rotina anónima ou o bloqueio que é passado para filtrar, processar o conteúdo de $ _ para alterar o código fonte da maneira desejada. Em outras palavras, o exemplo anterior, se tornaria: Pacote BANG; usar filtro :: Simple; FILTRO {s / Bangs + Bang / die 'Bang' se $ Bang / g; }; 1; note que o código fonte é passado como uma única seqüência, portanto, qualquer regex que usos ^ ou $ para detectar limites de linha terá os m flag.Requirements /: · Requisitos Perl: · Perl.


Filtrar :: Simples Software Relacionado