设置文件权限需要perl chmod帮助

设置文件权限需要perl chmod帮助,perl,Perl,下面是我的代码: foreach my $node (@switch_list) { chomp $node; print "$node \n"; my $f3 = ">$node.txt"; chmod 0755, $f3; open FILE3, "$f3" or die "Could not open file:$! \n"; } 在这里,我想创建许多具有完全权限的文件,但似乎该文件是使用 权限:0640而不是0755。您正在执行以下操作:

下面是我的代码:

foreach my $node (@switch_list) { 
    chomp $node;
    print "$node \n";
    my $f3 = ">$node.txt";
    chmod 0755, $f3;
    open FILE3, "$f3" or die "Could not open file:$! \n";
}
在这里,我想创建许多具有完全权限的文件,但似乎该文件是使用 权限:0640而不是0755。

您正在执行以下操作:

my $f3 = ">$node.txt";
chmod 0755, $f3;
因此,Perl查找名为
$node.txt
的文件

相反,你应该:

my $f3 = "$node.txt";
chmod 0755, $f3;
open FILE3, ">", "$f3" or die "Could not open file:$! \n";

codaddict是正确的,因为您在
$f3
字符串中包含了模式,这可能会导致
chmod
失败


然而,一个比使用
chmod
更好的解决方案可能是使用,我相信它可以与
open
一起使用(尽管文档中只特别提到了
sysopen
,我不在linux中,所以我可以尝试一下)。

@Pradeep:你是什么意思
open
将单参数foo.txt识别为创建(
)名为
“foo.txt”
的文件的请求(尽管三参数形式更好)
chmod
没有将
“>”
视为特殊文件,因此它尝试对名为
>foo.txt“
@KeithThompson-Pradeep”的文件进行操作,因为它是错误的,所以我删除了它。