加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl记录哪些脚本/模块访问另一个模块

发布时间:2020-12-16 06:17:02 所属栏目:大数据 来源:网络整理
导读:我们维护了大量的perl模块,实际上它非常庞大,我们甚至不知道我们负责的所有模块.我们希望跟踪哪些脚本和模块在某种日志中访问另一个模块,最好是按模块名称存储,这样我们就可以评估更新模块是否存在风险,以便我们知道可能会影响到什么. 有没有简单的方法来做
我们维护了大量的perl模块,实际上它非常庞大,我们甚至不知道我们负责的所有模块.我们希望跟踪哪些脚本和模块在某种日志中访问另一个模块,最好是按模块名称存储,这样我们就可以评估更新模块是否存在风险,以便我们知道可能会影响到什么.

有没有简单的方法来做到这一点?

解决方法

也许编辑sitecustomize.pl,以便每次Perl运行时,它会在日志中写入一些信息,然后分析它?添加这样的东西到sitecustomize.pl:

open (LOG,'>>',"absolutepathto/logfile.txt");
print LOG $0,"t",$$,scalar(localtime),"n";
open SELF,$0;
while (<SELF>) {
print LOG $_ if (/use|require/);
}
close SELF;
print LOG "_" x 80,"n";
close LOG;

编辑:
此外,我们忘记了%INC哈希,因此上面的代码可能会被重写如下,以包含更多关于实际加载哪些模块的数据包括do函数所需的文件:

open (LOG,' ',$0;
while (<SELF>) {
print LOG $_ if (/use|require/);
}
close SELF;
END {
local $" = "n";
print LOG "Files loaded by use,eval,or do functions at the end of this program run:n";
print LOG "@{[values %INC]}","n";
print LOG "_" x 80,"n";
close LOG;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读