Local trains from Perugia Ponte San Giovanni station not Perugia's central station take about 25 minutes. Trains are not especially frequent so check the timetables. The fare is a mere â¬1.65.
The same local train line runs to Terni, which is connected to major train lines. You can get trains from Terni to Marsciano for â¬3.05. At Terni station, buy the ticket to Marsciano from the shop in the bar rather than at the ticket window. Also, the trains that run on the Terni-Perugia PSG line are not listed on the main timetables displayed in Terni station. However, there is a separate timetable showing these trains and they appear on the departures board. The Trenitalia website also lists trains.