perl: foreach() a dalsi polozka

Honza Pazdziora adelton na informatics.muni.cz
Úterý Srpen 14 13:57:46 MEST 2001


On Tue, Aug 14, 2001 at 01:34:05PM +0200, Michal Ludvig wrote:

> mam zhruba nasledujici konstrukci v perlu:
> (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().
> 
> Na miste oznacenem '>>>>>' potrebuju z @file dostat dalsi radek do $_
> (nebo do jine promenne). Uz nad tim badam celkem dlouho a neprisel jsem na
> to jak to udelat :-(((

Nejjednodussi je asi jen pres to pole indexem a ve vhodnem miste
udelat ++.

for (my $i = 0; $i < @file; $i++) {
	local $_ = $file[$i];

	# >>>>>>
	$i++;
}

Dalsi moznost je drzet si stranou priznak, ktery rika, ze se provedla
akce DelejNeco1 a ze tedy v dalsim pruchodu se ma udelat akce
DelejNeco2 (a priznak vynulovat).

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
   .project: Perl, DBI, Oracle, MySQL, auth. WWW servers, DBD::XBase.
Returned from nearly off-line world -- sorry if this email reaches you late.


Další informace o konferenci Perl