Pergunta

Como faço para criar um manipulador de eventos no meu código PERL para interceptar todas as chamadas baseadas em arquivos/diretório/sistema, para que eu possa não ter informações de maneira justa.

Tenho muito acesso de IO no meu script e acho que adicionar código manual para não espalhar pesado.

Isso pode ser feito sem a necessidade de instalar um módulo CPAN de terceiros?

Foi útil?

Solução

Você poderia tentar tomar um abordagem orientada a aspectos Mas isso requer a instalação de um módulo CPAN, Aspecto.

Para capturar chamadas para um método / função específica, você define um ponto de ponto (retirado da vagem de aspecto):

$pointcut = call qr/^Person::[gs]et_/; # defines a collection of events

Em seguida, defina o código a ser atendido antes da chamada:

$before = before {
  print "g/set will soon be called";
} $pointcut;

Embora eu não tenha certeza se o módulo de aspecto permite que você prenda as chamadas para o núcleo ::* namespace.

Outras dicas

Como esperar dados gerais sem dizer? Se você vai aceitar cegamente tudo, apesar de sua fonte, não há sentido em usar a verificação de manchas.

Você pode querer ler o capítulo "Técnicas de programação seguras" em Dominar perl. Eu dou bastante conselhos para lidar com esse tipo de coisa. No entanto, qualquer bom conselho será direcionado a situações específicas, e não às generalizações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top