Leser: 5
|< 1 2 3 4 5 >| | 49 Einträge, 5 Seiten |
LanX-+2008-08-24 17:39:26--@leo: Wer weiß ob Ronnies Ideen deine Ideen sind ...
LanX-+2008-08-24 18:51:16--@Ronnie: ja aber wenn er nix damit anfangen kann ärgerst du dich. oder?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
my @datei_to_sort = map {chomp; $_} (<DATA>); my $level_to_sort = 20; my $spalte_to_sort = 5; print Dumper in_three_chunks(\@datei_to_sort, $level_to_sort, $spalte_to_sort); sub in_three_chunks { my $datei_ts = shift; my $level_ts = shift; my $spalte_ts = (shift)-1; return unless ref $datei_ts or not $level_ts =~ /^\d+$/; my %parted = ( before => [], matching => [], after => [] ); for my $zeile (@$datei_ts) { my $spalte = [split /;/, $zeile]; push @{$parted{'matching'}}, $zeile, $spalte->[$spalte_ts] and next if $spalte->[2] == $level_ts; unless (@{$parted{'matching'}}) { push @{$parted{'before'}}, $zeile; } else { push @{$parted{'after'}}, $zeile; } } #print $parted{'matching'}->[1]; sort { $a->($parted{'matching'}->[1]) <=> $b->($parted{'matching'}->[1])} %parted; return \%parted; } __DATA__ Zeile1;;10;;;; Zeile2;;11;;;; Zeile3;;20;;600;; Zeile4;;20;;500;; Zeile5;;20;;800;; Zeile6;;20;;700;; Zeile7;;30;;;; Zeile8;;40;;;;
leo11+2008-08-24 23:34:58--Ich dachte du würdest die Perl Doku verwenden? Was hindert dich daran, mal einen Blick da rein zu werfen?Das push verstehe ich, aber die Bedingung für unless ist mir unklar. Was gibt die den zurück? True/false o.ä.? Und wieso?
leo11+2008-08-24 23:34:58--1.)Die sort-Zeile geht noch nicht. Was muss man schreiben, damit ich folgendem Ergebnis ein Stück näher komme?
Zeile1;;10;;;;
Zeile2;;11;;;;
Zeile4;;20;;500;;
Zeile3;;20;;600;;
Zeile6;;20;;700;;
Zeile5;;20;;800;;
Zeile7;;30;;;;
Zeile8;;40;;;;
@{$parted{'matching'}} = sort { $a->[4] <=> $b->[4] } @{$parted{'matching'}};
leo11+2008-08-24 23:34:58--2.)Was bewirkt
return unless ref $datei_ts or not $level_ts =~ /^\d+$/;
leo11+2008-08-24 23:34:58--3.)wie funktioniert
unless (@{$parted{'matching'}}) {
push @{$parted{'before'}}, $zeile;
} else {
push @{$parted{'after'}}, $zeile;
}
Das push verstehe ich, aber die Bedingung für unless ist mir unklar. Was gibt die den zurück? True/false o.ä.? Und wieso?
1
2
3
4
solange noch nichts gefunden wurde, was dem Suchkriterium entspricht
füge Zeile in die Ergebnissliste "before" ein,
ansonst
füge Zeile in die Ergebnissliste "after" ein.
|< 1 2 3 4 5 >| | 49 Einträge, 5 Seiten |