Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilVítězslav Marek
1
Seznamy Seznam = očíslovaná posloupnost skalárů Zápis seznamu do kulatých závorek: ("máslo")# jednočlenný seznam (1,2,3)# seznam se 3 členy ("jedna",2,3,"osm",100,$pozdrav) ()# prázdný seznam (2..7)# (2,3,4,5,6,7) print – seznamový operátor => netřeba závorek print "Výsledek je ", $prijmeni, "\n"; –tiskne 3členný seznam, nepřidává mezery !
2
Zápis seznamu řetězců Místo uvozovek (jednoduchých či dvojitých) lze použít operátory q nebo qq Operátor qw - nemusí (NESMÍ) se psát uvozovky: qw(máslo mouka sýr rozinky) –Místo závorek lze použít jiný oddělovač, stejně jako pro q, qq Mezi členy seznamu mohou být mezery, tabulátory, znaky konce řádku: qw[ máslo mouka sýr rozinky]
3
Seznamy a proměnné ($jedna, $dve) = (1,2); –totéž jako $jedna = 1; $dve = 2; ($tri, $ctyri) = ($jedna, $dve); –napřed se vyhodnotí seznam vpravo, ten se pak přiřadí do seznamu nalevo ($tri, $ctyri) = ($ctyri, $tri);# výměna obsahu dvou proměnných –Je to totéž jako $tri = $ctyri; $ctyri = $tri; ?
4
Pole (array) = zařízení na ukládání seznamů Název pole - začíná @, dále stejná pravidla jako pro název proměnné Ukládání dat do polí: přiřazení seznamu: my @pole;# deklarace @pole = (1,3,5); @pole = qw(máslo mouka sýr rozinky); Rozdíl print @pole; print "@pole";
5
Pole a skaláry @pole je něco jiného než $pole ! NEDĚLEJTE TO !!! Ale lze přiřazovat skaláru pole: @pole = qw(máslo mouka sýr rozinky); $skalar = @pole; print $skalar;# Výsledek je 4 = počet prvků pole print scalar @pole;# totéž Skalární kontext vs. seznamový kontext $pole2 = @pole; @pole2 = @pole;
6
Prvky pole Index pole - pořadí prvku pole Čísluje se od nuly ! @pady = qw(nominativ genitiv dativ akuzativ vocativ local instrumental); print $pady[2];# co se vypíše? záporný index - odzadu: print $pady[-3]; Výpis více prvků najednou: –@pady[3,5,6]# proč tu není $ ? –@pady[0..4] –reverse(@pady[0..4])#nikoli @pady[4..0] !
7
Prvky pole - pokr. Přiřazování prvků pole $pad1 = $pady[0]; @vyber = @pady[0..3,6]; ($pad1,$pad3, $pad7) = @pady[0,2,6]; Zvl. proměnná $#pole - index posledního prvku pole Změna obsahu prvku pole - prosté přiřazení: $pole[2] = "třetí pád"; Vložení jiného pole: @pole1 = (3,5,7); @pole2 = (1,@pole1,9,11); print $pole2[2]; # co se vypíše?
8
Funkce na polích máslomoukasýrrozinky chléb pop rozinky push máslomoukasýr rum chlébrum máslomoukasýr shift máslo moukasýr unshift cukr chlébrum chlébrum sůl cukrsůl pop(@pole); push(@pole,qw/rum chléb/); shift(@pole); unshift(@pole, "cukr", sůl");
9
Další funkce moukasýr splice cukrchlébrumsůl splice(@pole,2,3,"krupice","tvaroh"); krupicetvaroh pole odkud kolik čím (seznam) Podobné jako u funkce substr, jenže pro prvky pole.
10
Funkce split Pracuje na řetězcích, výsledek je seznam $veta = "Dnes máme ale hezké počasí."; @slova = split(" ",$veta); print @slova[1,4], "\n"; # co se vypíše ? split(vzor, řetězec) Vzor může být i více znaků.
11
Cyklus foreach foreach proměnná (seznam) { blok } foreach $pad (@pady) { print $pad, "\n"; } Cyklus se opakuje tolikrát, kolik prvků má seznam Použití při procházení pole – s každým prvkem se něco provede Nelze nekonečný cyklus - výhoda
12
Cyklus for for (inicializace ; podmínka ; změna) { blok} for($i = 0; $i <= $#pady; $i++) { print $pady[$i], "\n"; } Použití deklarace my uvnitř cyklu neovlivní hodnotu proměnné vně $i = 666; for(my $i=10;$i>0;$i--) {print $i} print $i; # bude 666
13
Vnořené cykly my @konce = qw/konec exit quit leave stop/; while( ) { chomp; foreach my $k (@konce) { last if ($k eq $_) } print "Stále jsme neskončili, říkáš $_!\n"; } print "Končíme\n";
14
Návěští my @konce = qw/konec exit quit leave stop/; VNEJSI: while( ) { chomp; VNITRNI: foreach my $k (@konce) { last VNEJSI if ($k eq $_) } print "Stále jsme neskončili, říkáš $_!\n"; } print "Končíme\n";
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.