Необходимо найти и заменить строку в нескольких файлах с одинаковым расширением, используя perl.
Я использую этот код, но он не работает должным образом.Может кто-нибудь, пожалуйста, помогите.
#!/usr/bin/perl
use strict;
use warnings;
use English;
use Tie::File;
my $string2 = 'li role="prep" class="active"'; #old string
my $string3 = 'li role="presentation"'; #new string
my $string6 = 'div role="tabpanel" class="tab-pane active" id="documentation"'; #old string
my $string7 = 'div role="tabpanel" class="tab-pane" id="documentation"'; #new string
my $quoted_substring = quotemeta($string2);
my $quoted_substring2 = quotemeta($string6);
my $dir = 'C:\Users\vkpal\Desktop\New_Report';
foreach my $fp (glob("$dir/*.html")) {
chomp($fp);
printf "%s\n", $fp;
open my $fh, "<", $fp or die "can't read open '$fp': $OS_ERROR";
while (<$fh>) {
#printf " %s", $_;
s/$quoted_substring/$string3/g;
s/$quoted_substring2/$string7/g;
}
close $fh or die "can't read close '$fp': $OS_ERROR";
}
Я использую приведенный выше код, но он не заменяет строку.Может ли кто-нибудь порадовать меня здесь.