49-year-old Moyer pitches 4 perfect innings