Thread Array mit Hashes sortieren und Elemente entfernen (10 answers)
Opened by bianca at 2015-09-08 19:49

bianca
 2015-09-08 19:49
#182102 #182102
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Guten Abend!

Ich würde gern ein Array of Hashes nach einem bestimmten Key sortieren und diesen Key dabei gleich löschen, da er nur hilfsweise für die Sortierung dient.

Da das Array eventuell etwas größer werden könnte möchte ich das so ressourcenschonend wie möglich machen.
Im Moment sieht das so aus:
Code (perl): (dl )
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
#!/usr/bin/perl
use strict;
use warnings;

my @unsortiert = (
    {
        name    => 'alpha',
        sorter  => 2,
        test    => 'I',
    },
    {
        name    => 'beta',
        sorter  => 1,
        test    => 'II',
    },
);

my @sortiert;
foreach my $tmp (sort {$a->{sorter} <=> $b->{sorter}} @unsortiert) {
    delete $tmp->{sorter};
    push @sortiert,{%$tmp};
}

use Data::Dumper;
print Dumper(\@sortiert);

Daran gefällt mir insbesondere nicht, dass ich zwei Arrays im Speicher habe.
Ich würde es gern bei einem belassen aber wie kann ich dieses sortieren und gleichzeitig den Hilfs-Key "sorter" löschen?
Danke
10 print "Hallo"
20 goto 10

View full thread Array mit Hashes sortieren und Elemente entfernen