0

我正在尝试在我的脚本中解析一些文件并将输出重定向到其他文件。请帮帮我,我做错了什么。因为我正在为每个输出创建单独的文件,但它正在创建一个通用的 .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";
4

2 回答 2

1

我将在这里做一些假设。

  1. 您没有使用use strictand use warnings,这就是为什么您无法弄清楚为什么会发生这种情况的原因。
  2. 当您说时but its creating a common file .txt file,您实际上是指它正在创建一个具有该名称的文件.txt
  3. 你的variables$m1log和不知何故未定义。$g1log$VOD1og

因此,要解决此问题,请添加

use strict;
use warnings;

到您的脚本并修复出现的错误和警告。如果您的问题仍然存在,请确保您的变量实际上包含您认为它们所做的事情,例如通过使用Data::Dumper模块打印它们:

use Data::Dumper;
...
print Dumper $VOD1og;

你会发现这Data::Dumper是一个很好的调试工具。

TL;博士:

my $VOD1og;         # undefined variable
print "> $VOD1og";  # prints "> " because $VOD1og is empty

如果没有use warnings,则不会发出警告。

于 2013-04-16T11:36:55.877 回答
0

如果存在一个变量$m1log,那么它应该是

open( $m1logFIle, ">", $m1log.".txt" ) || die "\n Could not create write file.\n\n";
于 2013-04-16T11:19:58.727 回答