我正在尝试在我的脚本中解析一些文件并将输出重定向到其他文件。请帮帮我,我做错了什么。因为我正在为每个输出创建单独的文件,但它正在创建一个公共.txt文件,而我的代码无效。
以下是创建输出文件的代码:
open( $m1logFIle, "> $m1log.txt" ) || die "\n Could not create write file.\n\n";
open( $g1logFIle, "> $g1log.txt" ) || die "\n Could not create write file.\n\n";
open( $V1logFIle, "> $VOD1og.txt") || die "\n Could not create write file.\n\n";
我使用以下代码将其打印到文件中:
print $V1logFIle "-V1 Success @ $curr_exectime(ms)\n\n";
答案 0 :(得分:1)
我将在这里做一些假设。
use strict
和use warnings
,这就是为什么您无法弄清楚为什么会发生这种情况。but its creating a common file .txt file
时,实际上是指它正在创建名为.txt
的文件。$m1log
,$g1log
和$VOD1og
在某种程度上是未定义的。因此,要解决此问题,请添加
use strict;
use warnings;
到您的脚本并修复出现的错误和警告。如果您的问题仍然存在,请确保您的变量实际上包含您认为他们所做的事情,例如使用Data::Dumper
模块打印它们:
use Data::Dumper;
...
print Dumper $VOD1og;
您会发现Data::Dumper
是一个出色的调试工具。
<强> TL; DR:强>
my $VOD1og; # undefined variable
print "> $VOD1og"; # prints "> " because $VOD1og is empty
没有use warnings
,没有给出警告。
答案 1 :(得分:0)
如果存在变量$m1log
,那么它应该是
open( $m1logFIle, ">", $m1log.".txt" ) || die "\n Could not create write file.\n\n";