Objektinis programavimas nors nėra lengvas ir būtinas, bet labai tinka žaidimams. Juk žaidžiame su objektais, o ne su funkcijomis. Todėl geriau ir kurti objektus.

Dabar aš turėčiau pasakoti kas yra abstrakcija, klasė, metodas. Bet as garantuoju, kad tą kuris nori laisvalaikiu kurti žaidimus tokie profesorių žodžiai ims pykint. Todėl kam įdomu tas susižinos patys, o as pasistengsiu tiesiog parodyt iš praktinės pusės kaip tai atrodo ir daroma. Tuo labiau, kad bendrai Perle objektinis programavimas nėra esminis dalykas ir daug labai gerų Perl programų parašyta be jo.

Iš kart griebkim paprasto kodo gabaliuką ir pameginkim suprast kas vyksta:

Na čia sukurtos trys funkcijos. Rezultatą nuspėti nesunku:

Dabar kitas pvz. kur toliau dirbama su tom pačiom funkcijom:

Na čia mes dar nemokam qw tai tiesiog:

yra tas pats kaip:

O

Vėl duoda tą patį rezultatą.

->
Gana svarbus simbolis. Su juo galime iššaukti metodus kaip kad mūsų kurtas „speak“:

Prasėkmės tos pačios. Bet čia jau atsiveria galimybės nes galima:

Taigi kas bebūtų kintamasis $a mės jam liepėm „Speak“. Nepamirškim, kad ką tai reiškia speak kiekvieno gyvio atvėju mes apibrėžėm su sub pačioj pradžioj. Jei to nebus Perl žinoma panikuos.

Taigi išnagrinėję daug keistybių jau išmokom objektiškai užrašyt pavyzdį pirmą:

Dar painiau…išsiaiškinkim:
klasė->metodas(@argumentas)
Tai tas pats kas kitaip, kaip seniau išmokot darant:
Klasė::metodas(„Klasė“, @argumentas)
Ir laikant „Klasė::metodas“ kvailu kažko pavadinimu. Taigi perrašom sub:

Shift čia išima pirmą reikšmę iš @_ ir priskiriama ji $class nuliniam kintamąjam. kaip matėm iš palyginimo nulinis kintamasis yra klasės pavadinimas.

Kad jau išmokom kurti metodus pridarykim dar jų daugiau. Padarykim dar vieną karvės metodą „sound“ kuris rūpinsis tik pačiu karvės garsu.

Šį kart nenaudosim Cow::, o tiesiog apskliausim „package Cow;“. (Panašu, kad mum jau gaunasi kažkoks moo darantis objektas). Veikimas įdomus. Pamėginkim pasekt jį: jei iškvisim Cow->speak, aktyvuosis metodas speak kuris $class kintamąjam priskirs reikšmę Cow pirma eilute, o antra iškvies metodą „sound“ ir viską atspauzdins.

Gana smagu kaip sugebėjom viską taip supainiuoti, bet pasistenkim dar.
Paveldėjimas
Visi gyvūnai moka tą patį „speak“ kaip ir mūsų karvė tai galim apibendrint:

O dabar mūsų karvė atrodys taip:

Na čia įdomi vieta @ISA masyvas. Tai specialus masyvas kurio dėka karvė tapo gyvūnu ir įgyjo visas jo savybės.

Duokim visiems arkliams vardus

Tai dabar galim daryt arklius su visokiais vardais:

Bless čia svarbu. Ji gražina adresą kurio dėka paskui
savo arklį galėsim rasti. Adresas bus išsaugotas į $talking.
Čia slidi vieta, nes:

Dabar rodo „reference“, todėl, kad musų metodas name sugadintas.
Teks naudoti ref tam, kad patikrintume ar tai „reference“ ar ne. ? ir : tai tiesiog C stiliaus if. taip perrašom name dalį:

Dabar nekyla problemų ir su bevardžiais arkliais.

Atitinkamą problemą išsprendus su speak ir dar prikūrus metodų rezultatas toks:

Na ir dirbti su visu šituo dalyku galime taip:

ir t.t.

Užduotis kurių nors nieks nesprendžia tai sukurti šunį su kokiais 5 metodais.