Я пишу Perl-скрипт для изменения всех URL-адресов в нескольких файлах в одном каталоге с регистра верблюда на строчные.
например, с
<a href="FooBar.html">
на
<a href="foobar.html">
Эта тестовая подстановка корректно переименовывает все URL-адреса в foobartest.html, как и ожидалось:
s/^<a href=\"(.*?)\"/<a href=\"foobartest.html\"/g
Но у меня возникают трудности при ссылке на фактическое имя файла через переменную $ 1.Пример того, что я пытаюсь:
s/^<a href=\"(.*?)\"/<a href=\"\L$1\"/g
Эта замена просто меняет ссылку на.Что мне не хватает?Вы, вероятно, можете сказать, что я довольно новичок в Perl, и поэтому любые рекомендации будут высоко оценены.
Полный сценарий для чтения файлов в каталоге и его замены (запись в виде одной строки неработать либо, несмотря на другие замены, работающие через одну строку):
#!/usr/bin/perl
use strict;
use warnings;
chdir("/var/www/html/twiki_html") or die "$!";
opendir (DIR, ".") or die "$!";
my @files = grep {/.*?\.html/} readdir DIR;
close DIR;
{
local @ARGV = @files;
while(<>){
s/^<a href=\""(.*?)\"/<a href=\"\L$1\"/g;
}
}