Prom∞nnß typu pole je seznam skalßrnφch prom∞nn²ch (Φφsel, °et∞zc∙).
JmΘno prom∞nnΘ typu pole mß stejn² formßt jako skalßrnφ prom∞nnß, jako prefix mß vÜak znak
@
. P°φkazy
@ovoce = ("jablka", "hrusky", "svestky"); @barvy = ("cervena", "modra");p°i°azujφ seznam t°φ prvk∙ do prom∞nnΘ pole @ovoce a seznam dvou prvk∙ do prom∞nnΘ @barvy.
Prvky pole jsou p°φstupnΘ pomocφ indexu (zaΦφnajφcφho od 0) uzav°enΘho v hranat²ch zßvorkßch. V²raz
$ovoce[2]vracφ hodnotu svestky. VÜimn∞te si, ₧e znak @ se zm∞nil na znak $, proto₧e ovoce[2] tj. prvek pole je skalßrnφ prom∞nnß.
Nejpve si uka₧me p°i°azenφ v kontextu pole.
Prvnφ p°i°azenφ nahradφ prom∞nnou @barvy jejφm obsahem, tedy oba p°φkazy majφ stejn² v²sledek.
@vicebarev = ("bila", @barvy, "cerna"); @vicebarev = ("bila", "cervena", "modra", "cerna");Vhodn² zp∙sob p°idßnφ prvku do pole je pou₧itφ funkce push:
push(@ovoce, "tresne");kterß p°idß °et∞zec tresne na konec pole @ovoce. K p°idßnφ dvou nebo vφce prvk∙ do pole pou₧ijte nap°.
push(@ovoce, "tresne", "broskve"); push(@ovoce, ("tresne", "broskve")); push(@ovoce, @dalsiovoce);Funkce push vracφ poslednφ prvek novΘho seznamu. Tedy:
@ovoce = ("jablka", "hrusky", "svestky"); @dalsiovoce = ("jahody","maliny"); $pocet = push(@ovoce, @dalsiovoce); print "Posledni prvek noveho seznamu je $pocet\n"; # tiskne maliny
Funkce pop odstranφ poslednφ polo₧ku pole a vracφ hodnotu poslednφ polo₧ky pole.
Z naÜeho p∙vodnφho seznamu
@ovoce = ("jablka", "hrusky", "svestky");
funkce
pop vrßtφ
svestky a pole @ovoce mß nynφ dva prvky:
$noveovoce = pop(@ovoce); # nynφ $noveovoce = "svestky"
P°i°azenφ v kontextu skalßrnφ prom∞nnΘ.
╪ßdek
$f = @ovoce;p°i°adφ prom∞nnΘ $f hodnotu urΦujφcφ dΘlku pole @ovoce tj. hodnotu 3, ale
$f = "@ovoce";p°i°adφ prom∞nnΘ $f °et∞zec obsahujφcφ prvky seznamu odd∞lenΘ mezerami tj °et∞zec jablka hrusky svestky.
P°i p°i°azovßnφ je mo₧nΘ pou₧φt pole spolu se skalßrnφmi prom∞nn²mi:
($a, $b) = ($c, $d); # TJ. $a=$c; $b=$d; ($a, $b) = @ovoce; # $a a $b jsou prvnφ dva prvky pole # @ovoce. ($a, @jineovoce) = @ovoce; # $a je prvnφ prvek pole @ovoce # @jineovoce je seznam dalÜφch prvk∙ # (@jineovoce, $a) = @ovoce; # @jineovoce je @ovoce a # $a je nedefinovanΘ.Poslednφ p°φpad nastane, nebo¥ do pole @jineovoce je mo₧nΘ vlo₧it mnoho prvk∙. Proto je lΘpe takovΘto p°i°azenφ nepou₧φvat.
KoneΦn∞ m∙₧eme chtφt zφskat index poslednφho prvku pole . Pro pole @ovoce pou₧ijeme v²raz
$#ovoce
print @ovoce; # vlastnφ pole print "@ovoce"; # Uzav°eno v uvozovkßch print @ovoce.""; # Ve skalßrnφm kontextu
P°φklad 2a:
Napl≥te pole jmena hodnotami: Jan, Josef, Lada, Michal, Renata.
Napl≥te pole vek hodnotami: 16, 10, 12, 15, 17.
VypiÜte postupn∞ v∞ty: Vek osoby ... je ... let, pro ka₧dou dvojici.
SpoΦφtejte a vypiÜte pr∙m∞rn² v∞k osob.
VypiÜte poslednφ prvek pole pomocφ indexu $#jmena.
Spus¥te script s argumentem, kter² urΦuje po°adovΘ Φφslo pole. Odpovφdajφcφ pole vytiskn∞te. Jedno z mo₧n²ch °eÜenφ.