【发布时间】:2017-05-30 17:40:40
【问题描述】:
我正在编写一个 Perl 脚本,我在其中读取包含 Perl 代码部分和非 Perl 数据的文件。
处理完文件后,我将它们写入一个临时文件(生成的脚本),然后使用eval 命令执行该文件。我不想单独运行生成的脚本,因为我需要使用主脚本中的变量在生成的脚本中进行插值。
我需要将 eval 命令的输出重定向到一个文件。关于如何实现这一点的任何建议?
脚本中的步骤:
-
READ_FILE
-
处理文件
-
用临时文件名写回
-
读取临时文件 (
my $file_name = read_file('temp_file_name')) -
评估 (
eval $file_name)
感谢您的帮助。
【问题讨论】:
-
输出到STDOUT了吗?
-
是的。它目前打印在 STDOUT 上。
-
然后您可以使用 Capture::Tiny,将其放入变量中,然后从那里写入文件。周围有几个很好的答案。我会找到一个重复的目标。
-
stackoverflow.com/a/3511098/1331451 是基本的,我不认为它可以作为规范。 stackoverflow.com/a/8781408/1331451 更好,但不是公认的答案,所以我不想结束。我暂时写一个新的。
-
为什么不只是
openSTDOUT上的文件?