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; } #### GC kes."--Wylie, b. 16, ch. 1 Did this haughty potenta GC rty."--Wylie, b. 16, ch. 1 This document clearly re #### s/ (??{$missingpages[$_]-1|$missingpages[$_]-2|$missingpages[$_]-3|$missingpages[$_]-4|$missingpages[$_]-5|$missingpages[$_]-6}) .*? (.{0,30}) (?\D) (.{0,30}) .*? (??{$missingpages[$_]+1|$missingpages[$_]+2|$missingpages[$_]+3|$missingpages[$_]+4|$missingpages[$_]+5|$missingpages[$_]+6}) /$replace->()/egx for @source;