chdir 'D:\vspomob\html';#диалог "открыть папку, выбрать файлы" use locale; open ALL,'>','text.html';#общий файл open LOG,'>','join.log'; $/ = undef; $chapno = 1; $chappat = qr!
(ГЛАВА\s+.*?)(?:
]*>|
)((?:[^<>]|
)+)
]*>(Часть (?:первая|вторая)[.\s]*<\/p>
.+?|СПИСОК [\w\s]*ЛИТЕРАТУРЫ)\s*<\/p>)?/ my $x=$1; if($x){$x=~s!<\/p>
!
!;$x="
]*>\s*$page\s*<\/p>//;
# Исправляем глюки
s/napa/пара/g; #qr/[b-fh-kn-su-zд-зёйнпрф-ю](!=[.)])/
s/-\s*(?:
|<\/p>\s*
]*>)\s*/-/g; s/\b((?:[а-яё]\s){4,}[а-яё])\b/my $x = $1;$x=~s!\s!!g;$x/eig; s/lll|(?<=[а-я])111|111(?=[а-я])/Ш/ig;s/ll|(?<=[а-я])11|11(?=[а-я])/П/g; s/\bлагер/багер/ig; s/ь[(1l|)]/ы/ig;s/\bЛым/Дым/ig; s/!O|!О|\bю\b/10/ig;s/(\d[ОO!I]*|[!I]\d)/my $x=$1;$x=~tr~OО!I~0011~;$x/eg; s/(?]*>(ОГЛАВЛЕНИЕ|ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ|СОДЕРЖАНИЕ)\s*<\/p>/ "
\s*(?:)?((\d+)\.(\d+)\..*?)(?:<\/p>)?(?=\
$1<\/h3>\n"; print LOG $x;$x /eg; s/$chappat/my $x='
]*>(?:[^<>]|
)+[^\s\d]\s*<\/p>\s*)+)((?:
]*>\s*\d+\s*<\/p>\s*?)+)/ my ($it,$pn,$i)=($1,$2); my @pn = $pn=~m!(\d+)!g;#надо, чтобы номеров хватило my @it = $it=~m!(
?<\/p>' ) x scalar(@it-@pn), @it )};
$i=@pn;
$it[$i] =~ s!<\/p>! $pn[$i].'<\/p>'!e while $i--;
join '',@it
/eg;
s/(\d+)\s*(?=
|<\/p>)/$1<\/a>/gi
};
# Вырезаем или копируем картинки
s/]+>/
<!-- картинка -->
<\/pre>/g;
# Добавляем полученный текст в финальный файл
print LOG " done\n";
print ALL "
-- $page --
$_"
};
close ALL;
close LOG;