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. あなたの変数は$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場合、警告は表示されません。

于 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 に答える