Schrift
[thread]12191[/thread]

Gibt es eine automatische counter-Variable in Schleife?



<< >> 5 Einträge, 1 Seite
tsy
 2008-07-16 11:54
#112189 #112189
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hallo!
Ich bin gerade beim Schleifen bauen und bin dabei auf die Idee gekommen, dass es ja eigentlich sehr praktisch wäre, wenn man in einer foreach- oder while-Schleife nicht immer sowas wie
Code (perl): (dl )
1
2
3
4
5
$counter =0;
foreach $elem (@array){
   print;
   $counter++;
}

machen müsste, um die Nummer der aktuellen Iteration herauszufinden sondern das eleganter lösen könnte. Ich denke da z.B. an etwas wie $. beim einlesen von Dateien. Gibt es sowas?

Gruß, tsy
Linuxer
 2008-07-16 12:05
#112190 #112190
User since
2006-01-27
3871 Artikel
HausmeisterIn

user image
Hi, ist mir in der Form nicht bekannt.

Wenn Du einen Array durchlaufen willst, kannst Du den Index als Counter nutzen:

Code (perl): (dl )
1
2
3
for my $idx ( 0 .. $#array ) {
  print $array[$idx];
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
moritz
 2008-07-16 13:44
#112193 #112193
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Nein, so ein Dingens gibt es nicht. Es gibt lediglich bei Filehandles einen counter.

In Perl 6 kann man da was nettes mit lazy lists machen:

Code: (dl )
1
2
3
for @list Z 0..* -> $item, $index {
say "Item no. $index is '$item'";
}
renee
 2008-07-16 14:14
#112194 #112194
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Im Moment könnte man auch mit CPAN:Array::Each arbeiten. Vielleicht kommt das "each" für Arrays auch mit Perl 5.12!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
tsy
 2008-07-16 15:22
#112198 #112198
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hallo und danke für die Antworten!
Perls Zukunft setze ich war noch nicht ein, aber Array::Each sieht interessant aus. Mir fehlt es vor allem in foreach-Schleifen.

Viele Grüße,

tsy
<< >> 5 Einträge, 1 Seite



View all threads created 2008-07-16 11:54.