сойдет и без вызова system - по крайней мере в *nix Perl-е имеется собственная функция
chmod (естественно, опирающаяся на системную) . Возвращает число файлов, для которых были успешно изменены права доступа (даже если в результате фактически ничего не изменилось). Т.е. контроль ошибок, как у функции unlink. Т.е., чтобы еще и проверить, изменилось или нет, надо что-нибудь придумать, например добавить unless .
Пример применения (читать-писать владельцу rw-, группе и остальным только читать r--)
Код:
chmod (0644,$file)
Обратите внимание, что под *nix на каталог (если Вы хотите, чтобы в него можно было перейти) надо ставить разрешение на исполнение 5 (r-x), или 7 (rwx)