Don't you want
->toString(2)?
chmod 0664, $outfile;
that's not the right variable name. Aren't you using use strict; use warnings;?
autoflush XMLfile 1;
Useless, since closing a file handle flushes it.
binmode(XMLfile,":utf8");
That's a bug. "on document nodes [toString] returns the XML as a byte string in the original encoding of the document". You're double encoding. You want
# Switch to UTF-8 if it's not already.
$config->setEncoding('UTF-8');
open(my $config_fh, ">", $configuri) or die $!;
binmode($config_fh);
print $config_fh $config->toString(2);
close($config_fh);
chmod 0664, $configuri;
or better yet:
# Switch to UTF-8 if it's not already.
$config->setEncoding('UTF-8');
$config->toFile($configuri, 2);
chmod 0664, $configuri;