You can use the stat function to retrieve the uid of the file.
perldoc -f stat
stat FILEHANDLE
stat EXPR
stat Returns a 13-element list giving the status info for
a file, either the file opened via FILEHANDLE, or
named by EXPR. If EXPR is omitted, it stats $_.
Returns a null list if the stat fails. Typically
used as follows:
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks)
= stat($filename);
Not all fields are supported on all filesystem
types. Here are the meanings of the fields:
0 dev device number of filesystem
1 ino inode number
2 mode file mode (type and permissions)
3 nlink number of (hard) links to the file
4 uid numeric user ID of file's owner
5 gid numeric group ID of file's owner
6 rdev the device identifier (special files only)
7 size total size of file, in bytes
8 atime last access time in seconds since the epoch
9 mtime last modify time in seconds since the epoch
10 ctime inode change time in seconds since the epoch
+ (*)
11 blksize preferred block size for file system I/O
12 blocks actual number of blocks allocated
Example:
open MYFILE, '<filename' or die "Can not open: $!";
my $uid = (stat MYFILE)[4];
close MYFILE;
print "UID = $uid\n";
|