變更檔案清單的擁有者(和群組)。清單中的前兩個元素必須是數字uid和gid,順序為此。大多數系統會將任一位置的值-1解釋為不變更該值。傳回成功變更的檔案數目。
my $cnt = chown $uid, $gid, 'foo', 'bar';
chown $uid, $gid, @filenames;
在支援fchown(2)的系統上,您可以在檔案中傳遞檔案控制代碼。在不支援fchown(2)的系統上,傳遞檔案控制代碼會引發例外。檔案控制代碼必須傳遞為glob或glob參考才能被辨識;裸字詞會被視為檔案名稱。
以下是一個在passwd檔案中查詢非數字uid的範例
print "User: ";
chomp(my $user = <STDIN>);
print "Files: ";
chomp(my $pattern = <STDIN>);
my ($login,$pass,$uid,$gid) = getpwnam($user)
or die "$user not in passwd file";
my @ary = glob($pattern); # expand filenames
chown $uid, $gid, @ary;
在大多數系統上,除非您是超級使用者,否則您不得變更檔案的所有權,不過您應該可以將群組變更為任何次要群組。在不安全的系統上,這些限制可能會放寬,但這不是可攜式假設。在POSIX系統上,您可以這樣偵測此條件
use POSIX qw(sysconf _PC_CHOWN_RESTRICTED);
my $can_chown_giveaway = ! sysconf(_PC_CHOWN_RESTRICTED);
可攜式問題:perlport中的「chown」。