Atributo :: Manipuladores

definição mais simples de manipuladores de atributos
Baixe Agora

Atributo :: Manipuladores Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Steffen Muller
  • Site do editor:
  • http://search.cpan.org/~smueller/

Atributo :: Manipuladores Tag


Atributo :: Manipuladores Descrição

Definição mais simples de manipuladores de atributos O módulo Atributo :: Manipuladores Perl, quando herdados por um pacote, permite que a classe de pacote defina as sub-rotinas de manipulador de atributos para atributos específicos. Variáveis e sub-rotinas definidas posteriormente nesse pacote, ou em pacotes derivados desse pacote podem ser fornecidos atributos com os mesmos nomes que as sub-rotinas do manipulador de atributos, que serão então chamadas em uma das fases de compilação (ou seja, em início, ou bloco final). (Blocos Unitcheck não correspondem a uma fase de compilação global, para que eles não possam ser especificados aqui.) Para criar um manipulador, defini-lo como uma sub-rotina com o mesmo nome do atributo desejado e declare a própria sub-rotina com o atributo : Attr. Por exemplo: pacote LoudDecl; Usar atributo :: manipuladores; Subed: Attr {My ($ Package, $ symbol, $ referente, $ attr, $ Data, $ fase, $ filename, $ linenum) = @_; Imprimir stderr ref ($ referência), "", * {$ symbol} {name}, "" "," ($ referente) "", "foi declarado", "e atribuiu o atributo $ {attr}", "com dados ($ data) "," na fase de fase "", "no arquivo $ filename na linha $ linenum ";} Isso cria um manipulador para o atributo: alto na classe LoudDecl. Depois disso, qualquer sub-rotina declarada com um atributo alto na classe LoudDecl: pacote LoudDecl; Sub foo: Loud {...} faz com que o manipulador acima seja invocado e passado: o nome do pacote em que foi declarado; uma referência à entrada da tabela de símbolo (Typeglob) contendo a sub-rotina; uma referência à sub-rotina; o nome do atributo; todos os dados associados a esse atributo; o nome da fase em que o manipulador está sendo invocado; o nome do arquivo em que o manipulador está sendo invocado; o número da linha em Este arquivo.Synopsis pacote myclass; requer 5.006; Usar atributo :: manipuladores; sem avisos 'redefinir'; sub boa: attr (scalar) {meu (pacote $ pacote, $ símbolo, $ referente, $ attr, $ data) = @_ # Invocado para qualquer variável escalar com A: Bom atributo, # desde que a variável foi declarada em MyClass (ou # uma classe derivada) ou digitada ao MyClass. # Faça qualquer coisa para referência aqui (executado em fase de verificação). ...} Sub Bad: Attr (Scalar) {# Invocado para qualquer variável escalar com um atributo ruim, # desde que a variável foi declarada em MyClass (ou # uma classe derivada) ou digitada em MyClass. ...} Sub Good: attr (array) {# invocado para qualquer variável de array com um bom atributo, # desde que a variável foi declarada em MyClass (ou # uma classe derivada) ou digitada em MyClass. ...} Sub Good: attr (hash) {# invocado para qualquer variável de hash com A: Bom atributo, # desde que a variável foi declarada em Myclass (ou # uma classe derivada) ou digitada em MyClass. ...} Subfly: attr (código) {# invocado para qualquer sub-rotina declarada em MyClass (ou uma classe # derivada) com um atributo feio. ...} Sub Omni: attr {# invocado para qualquer escalar, matriz, hash ou sub-rotina # com um atributo: omni, desde que a variável ou # sub-sub-rotina foi declarada em myclass (ou uma classe derivada) # ou a variável foi digitada para myclass. # Use Ref ($ _ ) para determinar que tipo de referente foi. ...} Usar atributo :: manipuladores autotie => {ciclo => gravata :: ciclo}; meu $ Próximo: ciclo (); Requisitos: · Perl.


Atributo :: Manipuladores Software Relacionado