Sub :: ForceVal.

sub-rotinas eval, re-lance exceções se houver um eval; caso contrário, cluck e retornar indef
Baixe Agora

Sub :: ForceVal. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Steven Lembark
  • Site do editor:
  • http://search.cpan.org/~lembark/

Sub :: ForceVal. Tag


Sub :: ForceVal. Descrição

Sub-rotinas eval, re-lance exceções se houver um eval; caso contrário, cluck e retornar indef Subr3s que são marcados com a verificação do atributo ForceVal no tempo de execução, se houver uma avaliação na pilha quando a chamada morre. Se um eval for encontrado, o dado é propagado para ele via $ @; Se não, então, cluck (veja Carpa) é chamado e o dado é preso. A pilha só é verificada se algo morre, então há relativamente pouca sobrecarga para usar o atributo: apenas um armazenamento eval e intermediário dos valores de retorno. Inludes qualquer coisa que morre por qualquer motivo, mesmo que a morte não seja pretendida como uma "exceção" do OO. Isso pode ser útil para processos de longa duração que precisam garantir a sobrevivência. Também pode ser útil para subsídio de módulos que usam fatal: todas as fatalidades podem ser garantidos para serem graciosamente manipulados. Se os objetos de exceção são preferidos para valores $ @ flat, um construtor pode ser fornecido com o uso. Isso será dividido em porções de classe e método e chamado para construir um objeto da exceção; Subs individuais também podem fornecer um construtor.sub :: ForceVal é um módulo Perl para sub-rotinas eval, re-lançar exceções se houver um eval; Caso contrário, cluche e retorne Undef.synopsis # Você pode querer apenas que sua morte gravada ... # # Se foo morre em um eval, então $ @ será re-lhwn, # use sub :: ForceVal; Sub Foo: ForceVal {...} # Uma chamada nua para foo () no código principal vai conseguir. foo (); # A exceção é re-lançada aqui, no entanto, já que # Bletch foi chamado de dentro de um eval. eval {bletch ()}; Sub Bletch {Bar ()} Sub Bar {foo ()} # ... ou você pode querer uma morte excepcional. # # O padrão no MyClass é ter o ForceVal # chamar meu :: Classe :: Default-> Construtor ($ @) # Antes de jogar, Marine Re-lança # Mergulhar :: Dive-> Dive ($ @). pacote Myclass; Use sub :: QW Forçário (My :: Classe :: Default-> Construtor); Sub Marine: ForceVal ('Dive :: Dive-> Dive'); # Então, novamente, você pode apenas querer gravar ou # arrumar a mensagem. Neste caso, você pode passar # em uma função sem o separador '->' e # ele será chamado como função ($ @). Use SUB :: QW Forçário (Alguns :: Função :: Função); Requisitos: · Perl.


Sub :: ForceVal. Software Relacionado