Выполнение глобальной замены будет легко работать.Предполагая, что вы загрузили ваш файл в одну длинную строку, следующая подстановка сделает эту замену:
my $current_namespace = "m";
my $new_namespace = "a";
$xml =~ s/\<$current_namespace:/\<$new_namespace:/g;
Как вы сказали, файлы относительно велики, поэтому вам, возможно, придется реализовать потоковый метод.Например, вы можете прочитать файл построчно.Когда вы читаете файл, преобразуйте каждую строку, используя метод выше, а затем запишите во временный файл.Когда закончите, удалите файл на диске и переименуйте временный файл, чтобы заменить его.