When you open the file for writing there is no way of getting around the file system changing the permissions and the like on you. So the only way to deal with this is to capture these settings through the stat() function, and then to reapply the mode, uid and gid via chmod and chown. For example:
my $filename = "some.txt";
my @stats = stat( $filename );
open( FILE, ">$filename" ) or die $!;
# do your magic to the file....
close( FILE );
chmod $stats[2], $filename oe die $!; # mode is stored in stat field
+ 2
chown $stats[4], $stats[5], $filename or die $!; # uid in 4, gid i
+n 5
edit: chipmunk on 2001-03-05 |