On Wed, 13 Feb 2002 15:14:39 -0900, [EMAIL PROTECTED] (Michael Fowler) wrote:
>You have it backwards. Octal 100500 is 33088 in decimal. You just did the >conversion with the oct operator. > >You're confused about what oct does; it returns the decimal representation >of an octal value. Also, Perl is going to trip you up here; the decimal After putting on the dunce cap and typing 100 times: "the oct function takes a decimal value and returns octal, and (stat file)[2] returns a decimal value" I finally see it. I think I do anyways. :-) #!/usr/bin/perl use strict; use warnings; #usage testmode file, file defaults to self my $open = shift || $0; my $mode = (stat $open)[2]; print '(stat(file))[2] is ',$mode,' which is decimal representation of the octal value with file types',"\n"; printf "Permissions are %04o",$mode & 07777; print ' with file type masked off',"\n"; my $val = sprintf("%o", $mode); print "$mode in oct is $val\n"; my $perms = (stat("$open"))[2] & 07777; my $oct_perms = sprintf "%lo", $perms; print 'decimal perms are ',$perms,' with file type masked off',"\n"; print 'octal_perms are ',"$oct_perms",' with file type masked off',"\n"; print 'oct(',$perms,') ','is ',sprintf("%o",$perms),"\n"; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]