in reply to Seeking input on pattern generation.

Algorithm::Diff would be a good starting point, since it implements the diff(1) algorithm and works on arbitrary lists. Not sure if it does context, but something like
undef $/; my @diffs = diff([split /\s+/, <PAGE1>], [split /\s+/, <PAGE2>]);
(untested, of course) might be a good starting point.

/s