perl chmod требуется помощь, чтобы установить разрешение файла - PullRequest
2 голосов
/ 13 декабря 2011

Ниже мой код:

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.

Ответы [ 2 ]

5 голосов
/ 13 декабря 2011

Вы делаете:

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";
0 голосов
/ 13 декабря 2011

codaddict верны в том смысле, что вы включили режим в строку $f3, что, вероятно, приводит к сбою chmod.

Однако лучшее решение, чем использование chmod, может заключаться в использовании umask, который, как я считаю, работает с open (хотя в документации конкретно упоминается sysopen, и я не нахожусь в linux, поэтому могу попробовать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...