next up previous index
Következő: 9.1.1.8 Operátorok és precedenciájuk Fel: 9.1.1.7 Szintaxis ...utasítások Előző: 9.1.1.7.1 Egyszerű utasítás   Index

9.1.1.7.2 Összetett utasítás

Itt kell megemlíteni a BLOKK fogalmát, amely { és } jelekkel közbezárt utasítássorozat. (Itt fontosak a { és } jelek, még egyetlen utasításnál is!)

Ez alapján a lehetséges formák:

Az if utasítás szintaxisa itt egyértelmű lesz, mivel a BLOKK nem állhat egyetlen utasításból.

A while ciklus törzsében végrehajtott next utasítás hatására a vezérlés a continue BLOKK-ra kerül, majd újra elindul a ciklusmag.

Ez a szokásos C-beli ciklus formája. A következő két forma ekvivalens:

for($i = 1; $i < 10; $i++) { $i = 1;
... while($i < 10) {
} ...
} continue {
$i++;
}

CIMKE foreach változó (TOMB) BLOKK

Ez a shell-ekben meglévő ciklus egy változata. Itt a változó sorban felveszi a TOMB elemeit értékül, és így indul el a ciklusmag.

CIMKE BLOKK continue BLOKK

Ez a végtelen ciklus volt...

A ciklusokban használható a next, a last és a redo utasítás, melyek a ciklusbeli utasítások végrehajtását vezérlik. A fent említett next hatására a futás a ciklus elejére kerül, és a feltétel újratesztelésével folytatódik a működés. A redo ehhez hasonló, csak itt a feltétel tesztelése nélkül kerül a végrehajtás a ciklus első utasítására. A last pedig a ciklusból kiugrik, és az utána következő első utasításon folyik tovább a program végrehajtása. A három utasítás használatában érdekesség, hogy mindegyiket címkézni is lehet és ekkor az ugrások az adott címkével ellátott ciklusra vonatkoznak. Mivel a blokk egy egyszer lefutó ciklusnak tekinthető, ezért ezek az utasítások blokkban is használhatóak.

A switch utasításra nincs külön forma, de van rá egypár lehetséges megoldás, például:

SWITCH: {
/^abc/ && do { $abc = 1; last SWITCH; };
/^def/ && do { $def = 1; last SWITCH; };
/^xyz/ && do { $xyz = 1; last SWITCH; };
$nothing = 1;
}

A /âbc/ alakú feltételek mintaillesztésre szolgálnak. Ha egy minta illeszkedik a $_ változó tartalmához, akkor a hozzá tartozó feltétel második tagja is kiértékelésre kerül, azaz a do blokk is végrehajtódik.


next up previous index
Következő: 9.1.1.8 Operátorok és precedenciájuk Fel: 9.1.1.7 Szintaxis ...utasítások Előző: 9.1.1.7.1 Egyszerű utasítás   Index

1999-09-17