As the documentation of Win32::File says GetAttributes returns the or-ed combination of the file attributes
To chech if a given attribute is set or not you can use something like that:
my $attrib;
Win32::Fine::GetAttributes($path, $attrib);
if ($attrib & HIDDEN) { # HIDDEN and other attributes are
# exported by Win32::File by default
print "$path is hidden\n";
}
Cheers, Flo | [reply] [d/l] |
#! perl -slw
use strict;
use Win32::File qw[ GetAttributes ];
while( my $file = glob $ARGV[0] ) {
GetAttributes( $file, my $attrs );
printf "%1s%1s%1s%1s%1s%1s%1s%1s%1s %s\n",
( $attrs & ARCHIVE ) ? 'A' : ' ',
( $attrs & COMPRESSED) ? 'C' : ' ',
( $attrs & DIRECTORY ) ? 'D' : ' ',
( $attrs & HIDDEN ) ? 'H' : ' ',
( $attrs & NORMAL ) ? 'N' : ' ',
( $attrs & OFFLINE ) ? 'O' : ' ',
( $attrs & READONLY ) ? 'R' : ' ',
( $attrs & SYSTEM ) ? 'S' : ' ',
( $attrs & TEMPORARY ) ? 'T' : ' ',
$file;
}
__END__
C:\test>junk4 *.pl
Bareword "ARCHIVE" not allowed while "strict subs" in use at C:\test\j
+unk4.pl line 7.
Bareword "COMPRESSED" not allowed while "strict subs" in use at C:\tes
+t\junk4.pl line 7.
Bareword "DIRECTORY" not allowed while "strict subs" in use at C:\test
+\junk4.pl line 7.
Bareword "HIDDEN" not allowed while "strict subs" in use at C:\test\ju
+nk4.pl line 7.
Bareword "NORMAL" not allowed while "strict subs" in use at C:\test\ju
+nk4.pl line 7.
Bareword "OFFLINE" not allowed while "strict subs" in use at C:\test\j
+unk4.pl line 7.
Bareword "READONLY" not allowed while "strict subs" in use at C:\test\
+junk4.pl line 7.
Bareword "SYSTEM" not allowed while "strict subs" in use at C:\test\ju
+nk4.pl line 7.
Bareword "TEMPORARY" not allowed while "strict subs" in use at C:\test
+\junk4.pl line 7.
Execution of C:\test\junk4.pl aborted due to compilation errors.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] |
I didn't actually try it as I don't own a Win32 box, but the source code tells me that.
Exporter doesn't seem to import the symbols in @EXPORT if you specify a list of symbols yourself. You can either not import the GetAttributes function, import all attributes yourself or use the attributes with their full name.
I also think you could bug the author of the module to create an export tag that allows you to import all attributes at once.
Flo
| [reply] |
I see,...
This answers my question....
....Thanks.
| [reply] |
| [reply] |