Lecimy dalej

Dobry styl jaki jest nie wie nikt - kazdy ma swoj i tyle hihi. Sa jednak pewne wytyczne jak posac dobry kod, ktory jest pozniej latwo utrzymac na chodzie.

1. Zmiennym nadajemy nazwy ktore cos znacza - w ten spsoob kod prawie sam sie dokumentuje
2. use strict - to oszczedzi nam mase czasu jak bedziemy szukac bledow, kazda zmienna musi zostac zadeklarowana przed uzyciem - w ten sposob od razu wylapiemy literowki, zamiast szukac poznej czemu zmienne maja wartosc 0 i program nie dziala
3. use warnings albo flaga -w - dodatkowy debug moze sie przydac
4. Jesli jest modul realizujacy nasze zadanie to najprawdopodobniej powinnismy go uzyc (o tym dalej).

Kazdy musi wypracowac swoj styl - trwa to czasami dosc dlugo. Moj jaki jest taki jest, jednak moj kolega z pracy ktory od ponad 15 lat pisze w Perlu stwierdzil ze moj kod jest dosc zjadliwy, wiec chyba nie jest zle hihi.

Polecam 'man perlstyle' - dobrze widzicie, jest na ten temat strona manuala!

Zasieg leksykalny zmiennych
Jak wiece z innych jezykow, zmienne sa widoczne tylko w pewnym zakresie. W programie okreslamy zmienna $l i przypisujemy jej wartosc. Rzecz w tym ze nazwy $l mozna uzyc dalej w kodzie robiac z niej zmienna lokalna - zaraz bedzie przyklad.

Deklaracja funkcji
Funkcje czy tez procedury (tu nie ma rozroznienia jak w Pascalu na przyklad) moga zwracac wartosci, moga nic nie zwracac, moga dostawac parametry na rozne sposoby... do tego dojdziemy za chwilke

Kod:
sub nazwa {
  polecenia;
}
Jesli mamy program w ktorym definiujemy zmienna $l, poznej definiujemy funkcje o nazwie XYZ i wewnatrz tej funkcji deklarujemy zmienna $l to beda to 2 rozne zmienne - odpalcie ponizszy kod:

Kod:
use strict;
my $l=0;
print "L glowne = $l\n";
&nic;
print "L glowne = $l\n";

sub nic {
        print "L glowne w funkcji = $l\n";
	my $l = 5;
	print "Lokalne L funkcji = $l\n";
}
Jesli pominiemy to my, to przypisujac nowa wartosc zmieniamy wartosc zmiennej globalnej. Jesli jednak uzywamy strict, to ta pierwsza zmienna na poczatku kodu tez musi zostac okreslona jako my.
Tak samo strict wymusza aby funkcje byly jawnie deklarowane w kodzie w momencie wywolania - tzn napisanie nic; nie zadziala - trzeba wpisac &nic;.
Na poczatku uzywanie strict jest bardzo denerwujace - wiem po sobie, jednak w dluzszej perspektywie sami zobaczycie ze bez strict bedziecie miec mase problemow!

c.d.n