I am wanting to see if my file is a link without having to rerun the stat operator. I saw an note in O'Reilly Perl book that stated that when returning info on a link, stat would return the filetype of the actual file (- , d, etc...).
So maybe I should re-phrase my question to:
Is there a way to have an algorithm that will tell me what type of file it is without having to check each specific bit.
The following code returns a - for the file which is a link in both the $filelink and the $filetype variables.
# hard code a test link file to check
$source_file = "/temp/test/source/dir1/hello1_link.txt";
# define filetype array with potential first bits of mode
@ftypes = qw(. p c ? d ? b ? - ? l ? s ? ? ?);
$ftypes0 = '';
# Get File Statistics Using Scalar context
($dev,$inode,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks) = stat($source_file);
$perms = $mode & 07777;
$octperms = sprintf("%lo", $perms);
$filetype = $ftypes[($mode & 0170000)>>12];
$filelink = $ftypes[($mode & 0120000)>>12];
And while I am admitting how much I don't know, what does the >>12 do in the array reference?
Thanks.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.