in reply to Perlcritic and checking file modes
Hello neilwatson,
IIRC those numbers are octal, but if I wrap them in oct() test 3 fails.
You have to remove the leading zero when wrapping in oct():
1:53 >perl -wE "say 022;" 18 1:53 >perl -wE "say oct(22);" 18 1:53 >perl -wE "say oct(022);" Illegal octal digit '8' ignored at -e line 1. 1 1:53 >
(Otherwise the argument to oct is converted from octal to decimal before it’s passed to oct.) So using:
my $mode = $sb[2] & oct(777); ... ok( ! ( $mode & oct(22) ), "File is not group or world writable" );
should make Perl::Critic happy. :-)
Update: Alternatively, you can stringify the argument to oct and leave the leading zero in place:
1:53 >perl -wE "say oct('022');" 18 2:08 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|