Taigi nusprendžiau tęsti toliau. Jei išnagrinėjote pirmą dalį turite gan neblogus Perl pagrindus, bet iki tikrų tvirtų pagrindų dar jums reikia išmokti kelis dalykus.

Masyvai
Kas gi tie masyvai? Labai dažnai jums teks naudoti daug tarpusavyje susijusių reikšmių ir daug patogiau jas laikyti apjungtas kartu, negu, kad naudoti daugybę skaliarų. Taip be masyvų galima „išgyventi“, bet geras programuotojas yra tinginys ir stengiasi viską daryti kuo paprasčiau.
Masyvai Perle žymimi @ simboliu pradžioje. Ir jie atrodo taip:

Perl automatiškai numeruoja masyvo elementus nuo 0. Čia svarbu nesipainioti, nes chipsai natūraliai atrodo, kad yra pirmas elementas, bet ne Perle jie yra nulinis elementas. Tuo nesunku įsitikinti su tokia programėle:

Dar svarbu pastebėti kaip iškviečiami masyvo elementai. Vietoj @ rašom $ ir priglaudę gale laužtiniuose skliaustuose prirašom elemento numerį.

Masyvus galima sudėti vieną į kitą:

Metas susipažinti su dar viena komanda be print. Tai push. Push deda naujus elementus skaliarus arba masyvus į masyvo pabaigą jį ilgindama:

Na ir dar viena komanda pop. Pop išima paskutini elementą ir jį priskiria tam kas nurodyta per lygybę:

Tiesa sakant su masyvais galima daryt daug įdomių dalykų tarkim:

Kad ir keistai atrodytų, bet tai jokia klaida. Perl nusprendžia tiesiog pridėti @maistas ilg.

Dar įdomiau su kabutėm:

Čia $x tampa tiesiog žodžių eilute atskirta tarpais.

Ir dar:

Na tiek apie masyvus užteks.

Atidaryti bylas
Tai reikalinga labai dažnai. Visada jei norite ką nors išsaugoti į bylą ar nuskaityti iš jos.
Tiesa sakant jūs truputi tai jau darėt. STDIN yra standart input byla. Tiesa sakant ant Windows tokios nera, bet Perl gime Unix aplinkoje, o ten viskas yra bylos. Netgi tai ką vedate klaviatūra tai rašote į STDIN bylą. Bet dėl suderinamumų Perl interpretatorius ir ant Windows imituoja tą patį STDIN.
Taigi, o kaip rašyti į kitas bylas ar skaityti iš jų?
Tai gan nesunku. paaiškinsiu kiekvieną eilutę:

Šiek tiek daugiau apie open:

Jei atidarėm rašymui tada rašom taip:

Jei tos didelės raidės praleidžiamos tai tylėjimą Perl supranta kaip STDOUT. Dar vieną Unix standartinę bylą, kuri yra visa tai kas atsiduria ar bent jau turi atsidurti ekrane.

Valdymo struktūros
Perl naudoja į C ir Pascal panašias valdymo struktūras.
tai labai svarbu. Nes jei jau daug ekspermentavote su tuo ką žinote, tai dažnai norėjosi rasyti daug kartų tą patį. Geri programuotojai tinginiai ir jie to nedaro.

foreach
Tai paprasciausia valdymo struktūra. Ji kažką daro su kiekvienu masyvo elementu.

Na rezultatas gan ilgas ir nuobodus rašinėlis. Bet pats principas dažnai naudingas.

for
Pagaliau priejom. Jei priejot viską nagrinėdami ir išmokdami tai sveikiniu. Pati baisiausia užduotis mokykloje informatikos pamokoje. Paskalije ji atrodo kitaip, o Perl taip:

Lietuviškai tai skamba taip. Pradedam nuo $i = 1 ir kol $i < 10 kartojam vis pridėdami prie $i po 1. logika Perle
Prieš išmokstant ką nors naudingesnio teks susipažinti su logika.
Perle betkas nenulis ir netučias yra tiesa (True).
Tuščias kintamasis arba 0 yra netiesa (False).
Bet jei Perl generuoja tiesą tai jis ją žymi butent 1.

Tai padeda suprasti tokia programa:

Dar daugiau logikos, dar sunkiau…

Bet geriau nedemonstruoti savo logikos genijaus ir nekurti ilgų ir painių tokio tipo sakinių jei tik galima. O norit prikurti čia tikrai galima. Kodel? Nes nieks jūsų nesupras įskaitant ir jus pačius po savaitės. Tuo tarpu žinoti pagrindus kiek čia parodžiau būtina.

While, untill
Na tai vėl lengviau, bet norint pilnai tai mokėti reik žinoti apie logiką. Geras pvz.: paprasčiausias slaptažodžio tikrinimas:

Until naudojamas taip pat.

do while
Tiesa sakant aš du kartus perrašiau tą patį. Jei man reik, kad pimąjį kartą kodas būtų vygdomas besalygiškai geriau naudoti do while.
Tas pats pvz.:

if, else, elseif
Manau čia tai akivaizdu:

svarbu tik nepasimesti skliaustų kiekyje. Galima naudoti betkokį kiekį ar išvis nenaudoti elseif. pabaigoje gali būti arba nebūti else. Be to galima viduje vieno if naudoti kitą if su savo elseif ir tai daryti tiek kartų kol ką nors suprasti bus beveik neįmanoma. O jei dar pridėsim ilgus loginius sakinius prie tų visų if tai tuomet jau tikrai praktiškai neįmanoma. Nepaisant to programa veiks.

Na tuom ir baigsim pagrindus ir vėliau imsimies rimtesnių dalykų.

Kaip visad jums užduotis
Pasimkit bet kokį ilgą tekstą.
Ar atsisiūskit:
http://www.comp.leeds.ac.uk/Perl/Misc/electricity.txt
Ir parašykit programą kuri tame tekste sunumeruotų eilutes.
Patarimas: skaitymui iš bylos naudokit: