sub printattr{
my $file = shift;
my @fileattr = split(//,(stat($file))[2]);
print "[";
for my $attr (@fileattr){
if($attr eq 0){
print "---";
}
elsif($attr eq 1){
print "--x";
}
elsif($attr eq 2){
print "-w-";
}
elsif($attr eq 3){
print "-wx";
}
elsif($attr eq 4){
print "r--";
}
elsif($attr eq 5){
print "r-x";
}
elsif($attr eq 6){
print "rw-";
}
else{
print "rwx"
}
}
print "]\n";
}
####
use feature 'state';
sub printattr
{
state $attrs = [ qw( --- --x -w- -wx r-- r-x rw- rwx ) ];
state $maxi = $#$attrs;
my ($file) = @_;
print '[';
print $attrs->[$_ < $maxi ? $_ : $maxi] for split //, (stat $file)[2];
print "]\n";
}
####
sub print_attr
{
state $attrs = [ qw( --- --x -w- -wx r-- r-x rw- rwx rwx rwx) ];
my ($file) = @_;
print '[';
print $attrs->[$_] for split //, (stat $file)[2];
print "]\n";
}