Perl io Eventhandler para seqüências de seqüências de descamação
-
19-09-2019 - |
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?
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.