Perl, Datové typy (3.díl)

Napsal O webu (») 15. 12. 2007 v kategorii Programování, přečteno: 984×
obrazky/logo_perl.jpg

Datové typy

Perl nabízí na rozdíl od některých jiných programovacích jazyků relativně málo datových typů. Také neumožňuje vytvářet nové pojmenované proměnné. Perl implementuje pouze tři základní datové typy - skaláry, pole skalárů a hashe skalárů (asociativní pole).


Skaláry jsou základním datovým typem a tvoří se z nich ostatní, složitější datové typy. Jsou určeny k uchovávání jediné hodnoty, kterou může být řetězec, pole, číslo nebo odkaz. Pole je uspořádaný seznam skalárů. K jednotlivým položkám se přistupuje pomocí indexu, který implicitně začíná od 0. Hash je neuspořádaná dvojice klíč/hodnota. K hodnotám se zde přistupuje pomocí klíčů.


Identifikátor každého typu je uvozen zvláštním znakem. Skalární proměnné začínají znakem $, seznamy začínají znakem @ a hashe začínají znakem %. Každý typ proměnné má svůj vlastní jmenný prostor, což v praxi znamená to, že je možné použít stejný název proměnné pro datový typ pole nebo hash. Tato jména se pak budou lišit pouze svým uvozujícím znakem.



${'promena'}=1;

%{'promena1'}=1;

@{'promena1'}=1;




Název proměnné nemusí být vždy implicitně zadáno v době překladu programu, ale může být specifikováno až za jeho běhu. To lze provést tak, že místo názvu proměnné použijeme blok vracející řetězec (=symbolický odkaz) nebo odkaz (=dereference pevného odkazu).



${'a'}=1;

Sub nazev {return 'z'};
${'nazev () }=123456;

$rh = \$a;
$ {$rh} = 654321;




Jména proměnných a odkazy na jejich hodnoty jsou ukládány ve dvou typech paměťových struktur. Ty se nazývají tabulky symbolů a lexikální prostory. Tabulky symbolů jsou vztaženy k určitému balíku, kdežto lexikální prostory se vztahují k bloku. Umístění proměnné je určeno v okamžiku její deklarace. Jestliže proměnnou nadefinujeme pomocí funkce "my", bude se jedna o lokální proměnnou a bude umístěna do lexikálního prostoru. V ostatních případech se bude jednat o globální proměnnou zapsanou do tabulky symbolů.


Autor: Robert Habrman
Štítky: Perl
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
perlista z IP 78.157.170.*** | 15.8.2009 10:38
a co z toho plyne:
${'a'}=1;

Sub nazev {return 'z'};
${'nazev () }=123456;

$rh = \$a;
$ {$rh} = 654321;

co je v ktere promenne?


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel osm a jedenáct