|
|
1
15
试试这个:
它给出:
更新:我刚刚发布 Devel::Ditto :
|
|
|
2
8
使用调试::跟踪( https://metacpan.org/pod/Debug::Trace )
此程序保存为test.pl并调用为:
打印输出:
|
|
3
5
我知道源过滤器可以用于以下用途:
以下是输出:
|
|
|
4
4
Copas:我不能直接回复你的评论(还不够“酷”),但基本问题是任何一个合适的项目都不是一个.pl文件。它是一组模块,所有模块都被拉到一起。 您的代码: a)不处理one.pl文件之外的任何内容 b)不处理打印(…)有括号或间距不同的情况。 c)不处理第一个要打印的参数是函数调用或变量而不是双引号字符串的情况。 d)考虑:$object->日志(“AM即将打印”。FO($var)。到控制台);-您的regex将导致语法错误,使其成为:$object->日志(“am about to print”第1084行:。$FO($var)。至控制台); 也就是说,它对于简单的脚本是可行的。这不是一个坏主意(最坏的情况是,newsource.pl不编译),但除非全部在一个文件中,否则它不会解决这个特定的问题。 |
|
|
5
4
本文解释了如何钩住perl print函数: How can I hook into Perl's print? 如果不想用其他东西替换源代码中的所有print语句,则可能需要它。 |
|
6
4
我将保留源过滤器选项以供参考,因为它面向跟踪单个函数的调用。 然而,解决方案似乎是使用 Devel::Trace . 这可能会生成大量输出,您可以将其重定向到一个文件,然后对有问题的输出进行grep。
|
|
|
7
3
您可以尝试使用调试器(perl-d)单步执行代码。 我建议覆盖打印并使用:
…打印出额外的信息,但事实证明,打印是不能被覆盖的内置功能之一。 |
|
|
8
1
你可以尝试使用 Hook::LexWrap 深入研究代码库中的内容。它在内部做了一些非常邪恶的事情,所以不适用于所有代码库。 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 1 年前 |
|
|
con · 如何跳转到foreach迭代的特定点? 1 年前 |