Lawrence Statton wrote:
Hello group:
In attempting to set $file2 to the same mode as $file1 I do this:
my $mode = (stat($file1))[2];
chmod $mode, $file2;
That code does the trick but I just want to make sure of:
1)
I see in perldoc -f chmod it talks about oct() but if I'm using stat's
mode it should be safe not to use oct() correct?
2) $mode is really strange, ls -l shows a file as being 644 but $mode is
33188 or a directory as 755 but $mode is 16877
33188 is 0100644
16877 is 040755
from perldoc -f stat:
Because the mode contains both the file type and its
permissions, you should mask off the file type
portion and (s)printf using a "%o" if you want to
see the real permissions.
Since chmod() cannot not change the *type* of the file, those bits
appear to be ignored.
..........................BEGIN PERL PROGRAM ...........................
#!/usr/bin/perl
use strict;
use warnings;
my $file = '/tmp/test.pl';
my $mode = (stat($file))[2];
print "Mode was; $mode or in octal (which makes more sense) ", sprintf("%o", $mode),"\n" ;
........................... END PERL PROGRAM ...........................
Thanks Lawrence for the info, I understand much better now!
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>