perl: foreach() a dalsi polozka
Jindra Vavruska
ok1fou na volny.cz
Sobota Srpen 18 20:06:19 MEST 2001
> (V @file je spousta radku textu.)
>
> foreach (@file)
> {
> if(nejakapodminka)
> {
> DelejNeco1($_);
> # >>>>> Vezmi dalsi polozku
> DelejNeco2($_);
> }
> else
> {
> DelejNecoJineho($_);
> }
> }
>
> Takze pokud plati 'nejakapodminka' tak potrebuju na aktualni radek
> postvat funkci DelejNeco1() a na hned dalsi radek funkci DelejNeco2().
> Pokud podminka neplati (coz je vetsina pripadu), tak to s kazdym radke
> udela DelejNecoJineho().
>
A co tohle?
$stav = 0;
foreach (@file) {
if($stav==0 && nejakapodminka) {
DelejNeco1 ($_);
$stav = 1;
next ;
}
elsif( $stav == 1 ) { DelejNeco2 ($_) ; $stav = 0 ; next }
else { DelejNecoJineho($_) }
}
Ve for/foreach (@list) proste nejde vzit dalsi polozku a pokracovat v tele cyklu.
Ve for ( ; ; ) by sice slo laborovat s promennou cyklu, ale trochu se vam to
komplikuje nutnosti duplikovat test na konec smycky pri teto manipulaci.
S pozdravem,
--
Jindra Vavruska (OK1FOU)
use perl ;
Další informace o konferenci Perl