… | |
… | |
252 | } |
252 | } |
253 | |
253 | |
254 | sub write_file { |
254 | sub write_file { |
255 | my ($self, $path) = @_; |
255 | my ($self, $path) = @_; |
256 | |
256 | |
257 | open my $fh, ">:raw", "$path~" or Carp::croak "$path~: $!"; |
257 | open my $fh, ">:raw:utf8", "$path~" or Carp::croak "$path~: $!"; |
258 | print $fh $self->as_mapstring or Carp::croak "$path~: $!"; |
258 | print $fh $self->as_mapstring or Carp::croak "$path~: $!"; |
259 | close $fh or Carp::croak "$path~: $!"; |
259 | close $fh or Carp::croak "$path~: $!"; |
260 | |
260 | |
261 | stat $path; |
261 | stat $path; |
262 | |
262 | |
263 | chmod +(stat _)[2] & 0777, "$path~"; |
263 | chmod +(stat _)[2] & 0777, "$path~"; |
264 | chown +(stat _)[4,5], "$path~"; |
264 | chown +(stat _)[4,5], "$path~"; |