【发布时间】:2014-01-29 23:20:20
【问题描述】:
我有一个 perl 脚本,它读取一个文件并将读取的文件内容写入另一个文件。奇怪的是,代码在 DEV 环境中执行良好,但由于错误而失败 在 /ms/dist/msamg/PROJ/agcis/qa/perl/acd_pas_model_accounts.pl 第 183 行第 4 行打印中使用未初始化的值 $ofh
请指教。
下面是perl代码的sn-p:
my @filetomail = ("$opt->{RptDir}pas_acct_model_rtp.csv");
my $ofh = new IO::File "$opt->{RptDir}/pas_acct_model_rtp.csv", "w";
print $ofh;
unless (defined $ofh) {
$log->log (MSLogErr, "Error open file");
program_exit(6);
}
【问题讨论】:
-
QA 环境中很可能的权限/配置(未在您的 sn-p 中显示)。
$opt->{RptDir}填充了什么?此外,您的@filetomail变量与您打开的路径不同 - 这意味着如果您有旧版本的文件挂在以前的测试中,它可能在您的测试中有效,但实际上是一个错误(因此 QA 工作正确!) -
print $ofh没有意义,如果您还没有验证它是否像您在下一行中定义的那样。
标签: perl