Leser: 5
![]() |
|< 1 2 3 4 5 >| | ![]() |
49 Einträge, 5 Seiten |
Ronnie+2008-08-25 09:59:36--Ein Array - und um nix anderes geht es hier, auch wenn es aufwendig dereferenziert wird - gibt im skalaren Kontext (im Gegensatz zum Listenkontext) seine Länge zurück. Solange nix drin ist, ist die Länge Null und die Bedingung wird als FALSE ausgewertet.
leo11+2008-08-25 22:34:06--Die Subroutine finde ich sehr intressant, mit grep werd ichs auch mal probieren, sowie einige andere Dinge. Wieso schreibst du: "Da dein Kriterium rein numerisch ist..." Was hat das damit zu tun ob ich eine Sub nehme?
Ronnie+2008-08-25 22:48:02--Wie LanX- schon angedeutet hat, ist eine andere Perspektive leichter: Man hat eine Teilliste in der das Suchkriterium kleiner als der Wert 20 ist, eine in der der Wert 20 ist und eine wo der Wert größer 20 ist. Das kann man bequem bit drei grep-Anweisungen erledigen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
my @zw1 = ( [ 'z3;;120;;5;;;' ], [ 'z4;;121;;52;;;', '52' ], [ 'z5;;122;;5;;;' ], ); my @zw2 = ( [ 'z6;;120;;4;;;' ], [ 'z7;;121;;51;;;', '51' ], [ 'z8;;122;;5;;;' ], ); my @zw3 = ( [ 'z9;;120;;6;;;' ], [ 'z10;;121;;50;;;', '50' ], ); my %all_zwoelfer_ref =( zwoelfer1 => \@zw1, zwoelfer2 => \@zw2, zwoelfer3 => \@zw3, ); print Dumper \%all_zwoelfer_ref;
my @sorted_keys = map { sort { $_->{$a}[1][1] <=> $_->{$b}[1][1] } keys %$_ } \%all_zw_ref;
leo11+2008-08-31 12:21:17--Code (perl): (dl )%all_zwoelfer_ref = sort{ $a->[1][1] <=> $b->[1][1] } keys %all_zwoelfer_ref;
@all_zwoelfer_ref = sort{ $all_zwoelfer_ref{$a}->[1][1] <=> $all_zwoelfer_ref{$b}->[1][1] } keys %all_zwoelfer_ref;
QuoteBEACHTE: das Ergebnis der Sortierung ist aber ein *ARRAY* kein *HASH*, die Sortierung von HASHES ist in Perl per Definition willkürlich.
my @sorted_zwoelfer = sort{ $all_zwoelfer{$a}->[1][1] <=> $all_zwoelfer{$b}->[1][1] } keys %all_zwoelfer;
1 2 3
for my $x (0..2) { print "$all_zwoelfer{$sorted_zwoelfer[$x]}->[1][0]\n"; }
![]() |
|< 1 2 3 4 5 >| | ![]() |
49 Einträge, 5 Seiten |