my $replace = sub {
push @findmissing, "$bookabbrev\t$1\t$2\t$3\n";
return ''
};
foreach (0..$#missingpages) {
chomp $missingpages[$_];
my $skipped=$missingpages[$_];
my $before=qq||;
my $after=qq||;
s/$before.*?(.{0,25})(?\D)(.{0,25}).*?$after/$replace->()/eg for @source;
}