First, you have to decide the kinds of languages
you want to be able to parse. If the list begins and ends
with Turkish, you can simplify a lot, as you don't have to
worry about non-concatenative kinds of morphology (e.g.
reduplication, infixation, ablaut), or even prefixation, for
that matter.
You don't say whether your goal is to learn about parsing
or simply to be able to parse Turkish words. If the latter,
you can save yourself a lot of time and effort by using
the parser available at:
http://www.nlp.cs.bilkent.edu.tr/cgi-bin/tmanew
You get results like the following for 'baSlar':
analyze> 1. [[CAT=NOUN][ROOT=baS][AGR=3PL][POSS=NONE][CASE=NOM]]
2. [[CAT=VERB][ROOT=baSla][SENSE=POS][TAM1=AORIST][AGR=3SG]]
3. [[CAT=VERB][ROOT=baSla][SENSE=POS][TAM1=AORIST][CONV=ADJ=NONE]]
analyze> bye!
You can use Perl to submit words for parsing and then
map the results onto English. You'll also need to preprocess
the words to apply some phonological rules, like vowel
harmony. For example, you won't get any results from
'baSimda' and have to submit as 'baSImda' instead.
You could apply the harmony rules with s///, though if
you apply harmony to all words, it will apply incorrectly
to disharmonic roots and non-harmonizing suffixes.
It's pretty hard to avoid that problem without first
having the morphological parse!
ronald