Bendri reikalavimai programoms ============================== 1. Programas rašome Perl5 programavimo kalba. 2. Programos pradžioje turi būti komentarai, paaiškinantys, ką programa daro (1-3 sakiniai), kokias priima įvestis (nurodykite t.p. formatus), kokiu formatu pateikiama išvestis. 3. Programos turi naudoti filtro šabloną (skaityti STDIN arba komandos eilutėje nurodytą failų sąrašą, '-' failo vardą interpretuoti kaip nurodymą skaityti iš STDIN, rašyti į STDOUT). 4. Programos klaidų pranešimus turi rašyti į STDERR. 5. Klaidų pranešimai turi būti mandagūs ir informatyvūs. Klaidos pranešime būtina nurodyti: programos, kuri praneša apie klaidą, vardą, įvesties failo vardą, įvesties failo eilutę, pacituoti klaidingą duomenų srauto elementą, paaiškinti, kaip klaidą pataisyti. 6. Programos negali „šliurpti“ duomenų (nebent kitaip nebūtų galima jos efektyviai realizuoti); t.y. programos naudojamas RAM kiekis turi būti O(1). 7. Naudojame „while(<>) {}“ konstrukciją. 8. Programa turi išvesti darbo pradžioje savo automatiškai sugeneruotą SVN '$Id$' raktažodžio reikšmę *be* dolerio ('$') ženklų. Turi būti nepažeistas išvesties formatas. 9. Atskiras funkcijas realizuokite atskirose programose ar shell-skriptuose. 10. Kiekvieną programą testuojame GNU Make valdomais automatiniais testais. 11. Išvesties formatai gali būti: KSV (Keyword-space-value) arba TSV (Tab-separated value); FASTA; XML; JSON. 12. KSV/TSV ir FASTA formatui reikia nurodyti kiekvieną eilutę atitinkančią reguliarią išraišką (ERE arba PCER); XML – XML schemą; JSON – JSON schemą. 111. Nenaudojame ilgesnių nei 80 stulpelių eilučių. Išimtis: $URL$ ir formato pavyzdžiai komentaruose.