我有perl代码,从数据库中获取一些日期并将其打印到文件中。
------------------------
$select_month = $FORM{month};
------------------
print qq~<form method="post">
<select name="month">
<option value='01'>JAN</option>
-------
<option value='12'Dec'>DEC</option>
</select>
<INPUT type="submit" value="Go">
</form>
~;
print $select_month;
my $file_name_dates = "0N3_CUS_".$select_month."csv";
open (my $FH, "+>", $file_name_dates);
my $dbh = &connect_oracle;
my $Select = $dbh->prepare($sql_1);
$Select->execute($select_month,$select_year,$select_month,$select_year);
事情是那个
print $select_month;
有效,它会打印一个月到我的HTML。但是文件没有创建。有什么问题? 从命令行运行脚本时,文件打开工作。
答案 0 :(得分:1)
脚本的当前工作目录可能与您从Web服务器运行时的预期不同。尝试将文件名更改为完整路径而不是相对路径。例如:
my $base_path = "/path/to/files/";
my $file_name_dates = $base_path . "0N3_CUS_".$select_month."csv";
即使完整路径名是正确的,您的用户ID也可能是剥夺权利的,例如nobody
。如果使用完整路径不起作用,请指向任何用户可以写入的目录,并且任何用户都可以访问以确保用户ID不是问题。