perl: foreach() a dalsi polozka
Petr Divina
divina na biomed.cas.cz
Úterý Srpen 14 13:57:37 MEST 2001
Posilam jeden napad....
#!/usr/local/bin/perl
@file = ('prvni','druha','treti','ctvrta','pata','sesta');
while ($tmp = shift @file) {
if ($tmp eq "druha") {
print "Podminka plati: $_\n";
$tmp = shift @file; # >>>>> (Vezmi dalsi polozku)
print "Podminka plati - pokracovani: $tmp\n";
} else {
print "Podminka neplati: $tmp\n";
}
}
Vystup:
Podminka neplati: prvni
Podminka plati: druha
Podminka plati - pokracovani: treti
Podminka neplati: ctvrta
Podminka neplati: pata
Podminka neplati: sesta
Zdravim,
Petr
On Tue, 14 Aug 2001, Michal Ludvig wrote:
> Zdravim vespolek,
> 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 :-(((
>
> Predem diky za radu
> Michal Ludvig
>
>
Další informace o konferenci Perl