in reply to map2 {} grep2 {} ...
See List::MoreUtils, specifically pairwise (and natatime for the general case)
Neither pairwise() nor natatime() come even close to doing what the OP has asked for.