我编写了一个 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";
}
}