Thread [Tie-IxHash] SortbyValue / Key (8 answers)
Opened by Kean at 2019-12-20 10:11

Kean
 2019-12-20 10:11
#190994 #190994
User since
2004-08-18
463 articles
BenutzerIn

user image
Hallo Perl-Gemeinde,

da ein Hash bei Perl ja keine feste Reihenfolge hat, nutze ich mittlerweile immer häufiger Tie-IxHash.

Für das Sortieren eines Tie-IxHash habe ich folgendes Beispiel gefunden, was auf funktioniert:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use warnings;
use 5.010;
 
use Tie::IxHash;
my %people;
my $t = tie %people, 'Tie::IxHash';
 
%people = (first => 1, second => 2, third => 3);
$people{another} = 5;
$people{fourth} = 4;

$t->SortByKey; # oder SortByValue

while (my ($name, $nummer) = each %people)
        {
        print "$name->$nummer\n";
        }


In meinem Code deklariere ich die Objekte aber verkürzt:

Code (perl): (dl )
tie my %people, 'Tie::IxHash';


Wenn ich jetzt $people->SortByValue versuche, kommt folgende Fehlermeldung:

Code: (dl )
Can't call method "SortByValue" without a package or object reference


Gibt es eine Möglichkeit die Sortierfunktionen zu nutzen ohne die Deklarierung zu ändern?

View full thread [Tie-IxHash] SortbyValue / Key