ディレクトリに対していくつかの操作を実行するperlスクリプトがあり、現在のユーザー(スクリプトを実行しているユーザーなど)が所有権を持っているディレクトリで実行されるのを待つだけです。
私は次のことを試しました:
...
my $user = getlogin();
opendir(HANDLE, $path) or die ("No such directory: $path");
foreach my $directory (readdir HANDLE)
{
opendir(WORKING_DIR_HANDLE, "$path/$directory") or die ("!!!!!!!");
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat(WORKING_DIR_HANDLE);
my $owner = getpwuid($uid);
if( $owner eq $user )
{
...
}
}
...
コードはほとんどの場合機能します。ただし、stat() を呼び出すと、未定義の値が返されます。perl docs によると、私は stat() 呼び出しを正しく行っていると思います:
* stat FILEHANDLE
* stat EXPR
* stat DIRHANDLE
* stat
Returns a 13-element list giving the status info for a file, either the file opened via
FILEHANDLE or DIRHANDLE, or named by EXPR. If EXPR is omitted, it stats $_ . Returns the
empty list if stat fails. Typically used as follows:
また、ファイル名を使用して EXPR を渡そうとしましたが、同じ結果が得られました。明らかな何かが欠けているだけですか?または、これを行う別の方法はありますか?サードパーティの perl モジュールをインストールする必要のないソリューションを希望します。