Old Peru (also Peru, pronounced PEE-roo) is an unincorporated community in Madison County, Iowa, United States. Its elevation is 1,122 feet (342 m). Although Old Peru is unincorporated, it once had a post office under the name of Peru; the office was established on 18 April 1853 and closed on 14 September 1903. Even though the community's post office has been closed for over a century, ZIP Code 50222 is still reserved for Peru.
Old Peru was laid out as a town in 1855, but it declined when the railroad missed it by a mile, and in 1887 the town of East Peru was founded on that line.