【发布时间】:2013-12-10 03:00:39
【问题描述】:
我的代码在以下点失败
my $filePath = '/opt/CUSTOM/PREPRD/IP/actions/file.conf';
my $udf;
if (-e $filePath){
open $udf, "<", $filePath or die $!;
}
else{
open $udf, ">", $filePath or die $!;
}
文件不存在,代码在第一次迭代中失败。我本来希望第一个块可以工作。
【问题讨论】:
-
失败怎么办?
$!你快死了,它说什么? -
你确定你有正确的权限吗?
-
我将路径更改为 /tmp/file.conf 并且它有效,,,,,,但我希望它位于同一个目录中 flders 的权限应该是什么,所有文件夹都有755 权限@Cahu
-
这段代码看起来没问题,除非第一个
open因为权限问题而失败。您是否清楚$udf文件句柄将打开 要么 用于读取 或 用于写入,具体取决于文件是否存在?这意味着您可以打印到文件句柄或从中读取,但您必须编写更多if语句才能发现哪个。我认为您更有可能只想要一个可写入的打开(第二个open语句)或追加(使用'>>'的模式)。 -
@learner 您需要对该文件夹的写入权限才能允许在
else块中创建文件。
标签: perl unix file-permissions