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