Schrift
[thread]8376[/thread]

Schleifen vs. verschachtelte map's



<< >> 3 Einträge, 1 Seite
docsnyder
 2006-09-29 14:32
#70405 #70405
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Bitte fragt mich nicht nach dem tieferen Sinn der folgenden Frage, es ist einfach nur Wissensdurst ;o)

Gegeben ist folgendes Konstrukt:
Code: (dl )
1
2
3
4
5
for $i ( 1..2 ) {
for $j ( 5..6 ) {
print $i, $j, "\n";
}
}

Nun meine Frage: kann ich sowas irgendwie auch mit geschachtelten map-Konstrukten ausdrücken?

Wenn ja, müsste das dann ja etwa so aussehen:
Code: (dl )
map { map { ... } ( 5..6 ) } ( 1..2 );

Wie muss dann der Block des inneren map's aussehen? Ich müsste darin ja auf $_ aus verschiedenen map-Leveln zugreifen. Geht das?

Gruß, Doc
renee
 2006-09-29 14:38
#70406 #70406
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
map{my $i = $_; map{ print $i,$_,"\n" }(5..6)}(1..2);


Aber:
map im void-Kontext zu verwenden ist evil. Das kostet zu viel, weil perl da zwei temporäre Arrays machen muss und die werden für nichts gebraucht.
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/
docsnyder
 2006-09-29 14:49
#70407 #70407
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@renee

Danke für die schnelle Antwort!

Ich dachte mir schon sowas, daß ich mir $_ durch eine Zuweisung merken muss.

Quote
map im void-Kontext zu verwenden ist evil. Das kostet zu viel, weil perl da zwei temporäre Arrays machen muss und die werden für nichts gebraucht.


Wie gesagt, es war nur Neugier, wie man sowas machen würde. Einen echten Anwendungsfall habe ich dafür nicht.

Gruß, Doc
<< >> 3 Einträge, 1 Seite



View all threads created 2006-09-29 14:32.