Скрипт Perl для извлечения определенного каталога и изменения XML-файла

Скрипт Perl для извлечения определенного каталога и изменения XML-файла

Я написал скрипт perl для изменения xml-файла, который отлично работает только для одного файла. Я хочу, чтобы мой скрипт извлекал папку xml и изменял xml-файл внутри нее. Например, он должен работать для всех xml-файлов в xml-папках. Так как мне этого добиться?

Вот мой код.

open(FILE, "/home/AP/abc.xml") || die "File not found";
my @lines = <FILE>;
close(FILE);

my @newlines;
foreach(@lines) {
   $_ =~ s/<abc>/$&\n<!--a-->\n<!--b-->\n<!--c-->/g ;
                     s/hai/bye/g;
                     s/---/--/g;
                     s/***/**/g;

   push(@newlines,$_);
}
open(FILE, "/home/AP/abc.xml") || die "File not found";
print FILE  @newlines;
close(FILE);

решение1

На самом деле этого можно добиться многими способами... просто попробуйте следующий код и дайте мне знать, если возникнут какие-либо разъяснения или возникнут какие-либо ошибки.

sub fileprocessor{
    (my $file_name)=@_;

    my $tmp_filename="/home/AP/$file_name";
open(FILE, "$tmp_filename") || die "File not found";
my @lines = <FILE>;
close(FILE);

my @newlines;
foreach(@lines) {
   $_ =~ s/<abc>/$&\n<!--a-->\n<!--b-->\n<!--c-->/g ;
                     s/hai/bye/g;
                     s/---/--/g;
                     s/***/**/g;

   push(@newlines,$_);
}
open(FILE, "$tmp_filename") || die "File not found";
print FILE  @newlines;
close(FILE);

}


foreach(<*>){

     if(-f $_){
                fileprocessor($_);
        }else{

            print "directory\n";

        }

}

Связанный контент