解析日志文件,然后将输出重定向到其他文件

时间:2013-04-16 11:15:40

标签: perl

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

2 个答案:

答案 0 :(得分:1)

我将在这里做一些假设。

  1. 您没有使用use strictuse warnings,这就是为什么您无法弄清楚为什么会发生这种情况。
  2. 当您说but its creating a common file .txt file时,实际上是指它正在创建名为.txt的文件。
  3. 您的变量$m1log$g1log$VOD1og在某种程度上是未定义的。
  4. 因此,要解决此问题,请添加

    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";