The privatized rail system, PeruRail (www.perurail.com), has daily services between Cuzco and Aguas Calientes, aka Machu Picchu Pueblo, and thrice-weekly services between Cuzco and Puno on the shores of Lake Titicaca. There are also luxury passenger services between Cuzco, Puno and Arequipa twice weekly. Inca Rail also offers a service between Ollantaytambo and Aguas Calientes.
Train buffs won’t want to miss the lovely Ferrocarril Central Andino, which reaches a head-spinning altitude of 4829m. It usually runs between Lima and Huancayo from mid-April to mid-November. In Huancayo, cheaper trains to Huancavelica leave daily from a different station. Another charmingly historic railway makes inexpensive daily runs between Tacna on Peru’s south coast and Arica, Chile.