Schrift
[thread]10830[/thread]

Inverser Zugriff auf ein Array (Seite 2)

Leser: 1


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
#Kein Kommentar
 2007-11-20 17:11
#102661 #102661
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
wenn man alle vorkommen herausfinden will muss man die grep-funktion einfach in einen listenkontext stellen:

Code (perl): (dl )
1
2
3
my @indexe = grep{ $array[$_] eq $check } 0..$#array;

print "$check ist an der $_. Position des Arrays\n" foreach @indexe;



hmm, es wär doch eigentlich cool, wenn die grep-funktion automatisch beim ersten fund abbrechen würde, wenn sie im skalarem kontext stände.
oder macht sie das schon?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
renee
 2007-11-20 17:13
#102662 #102662
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, grep liefert im Skalaren Kontext die Anzahl aller Treffer, und das ist auch gut so!

Code (perl): (dl )
1
2
3
4
my @list = (1,1,4,7,1,4,3);
my $anz = grep{ $_ == 4 }@list;

print "die 4 kommt $anz mal in der Liste vor\n";
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/
renee
 2007-11-20 17:14
#102663 #102663
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
#Kein Kommentar+2007-11-20 16:11:26--
...
hmm, es wär doch eigentlich cool, wenn die grep-funktion automatisch beim ersten fund abbrechen würde, wenn sie im skalarem kontext stände.
oder macht sie das schon?


Ich habe sie nicht im Skalaren Kontext aufgerufen, sondern ebenfalls im Listenkontext (allerdings hatte die Liste nur ein einziges Element) - deswegen sind die Klammern um das $index wichtig!
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/
#Kein Kommentar
 2007-11-20 17:17
#102664 #102664
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
'cool' meinte ich aus performance-gründen, aber wahrscheinlich hast du recht.
es bringt einem ja kaum etwas.
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
Gast Gast
 2007-11-20 18:03
#102666 #102666
Nochmals Danke

Hein
ptk
 2007-11-20 22:43
#102684 #102684
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
#Kein Kommentar+2007-11-20 16:11:26--
hmm, es wär doch eigentlich cool, wenn die grep-funktion automatisch beim ersten fund abbrechen würde, wenn sie im skalarem kontext stände.
oder macht sie das schon?
Dazu nimmt man first() aus CPAN:List::Util.
Gast Gast
 2007-11-29 16:24
#103280 #103280
Moin,

was muss man denn anstellen um zu prüfen, das ein Wert eben (noch) nicht in einem Array abgelegt wurde. Die Alternative die Daten in ein Hash zu "verlagern" besteht leider nicht.

andree
renee
 2007-11-29 16:30
#103281 #103281
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
1
2
3
unless( grep{ $_ eq $to_check}@array ){
    print "$to_check ist noch nicht im Array vorhanden\n";
}
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/
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2007-11-19 18:49.