Ich versuche, einen Hash zu erstellen, der die Reihenfolge erhält, in der die Schlüssel hinzugefügt wurden. Im Abschnitt "Erstellen eines Hash und Beibehalten der Hinzufügereihenfolge" auf dieser Seite wird ein Code-Schnipsel bereitgestellt, der einen Hash modifiziert, sodass bei Verwendung von keys
die Schlüssel in der Reihenfolge zurückgegeben werden, in der sie in den Hash eingefügt wurden.
Wenn ich den folgenden Code-Schnipsel ausführe:
use strict;
our %foo;
use Tie::IxHash;
tie (%foo, Tie::IxHash);
Erhalte ich folgende Fehlermeldung:
Bareword "Tie::IxHash" not allowed while "strict subs" in use at /nfs/pdx/home/rbroger1/tmp.pl line 4.
Execution of /nfs/pdx/home/rbroger1/tmp.pl aborted due to compilation errors.
Wie kann ich Tie::IxHash zum Funktionieren bringen, wenn use strict
aktiviert ist?
Das Beispiel von dsolimano hat funktioniert.
use strict;
our %foo;
use Tie::IxHash;
tie (%foo, "Tie::IxHash");
$foo{c} = 3;
$foo{b} = 2;
$foo{a} = 1;
print keys(%foo);
ergibt:
cba
ohne die Zeile tie...Tie::IxHash
ergibt es
cab