如何在Perl代码中创建一个事件处理程序来拦截所有基于文件/目录/系统的调用,以便我能够以即时方式解开输入。
我的脚本中有很多IO访问权限,并且我发现添加手动代码以解决繁琐的问题。
这可以在不需要安装第三方CPAN模块的情况下完成吗?
答案 0 :(得分:1)
您可以尝试使用aspect-oriented approach,但确实需要安装CPAN模块Aspect。
要捕获对特定方法/函数的调用,请定义切入点(取自Aspect POD):
$pointcut = call qr/^Person::[gs]et_/; # defines a collection of events
然后定义在调用之前要执行的代码:
$before = before {
print "g/set will soon be called";
} $pointcut;
虽然我不确定Aspect模块是否允许您捕获对CORE :: *名称空间的调用。
答案 1 :(得分:1)
如何期望解开一般数据?如果你只是盲目地接受所有东西,尽管它的来源,使用污点检查没有意义。
您可能需要阅读Mastering Perl中的“安全编程技术”一章。我对处理这类事情提出了很多建议。但是,任何好的建议都将针对特定情况,而不是概括。