hi,
@{$temphash{$Id}} = ($titel,$autor,$preis,$erscheinungsjahr);
Ich möchte am Ende ich eine Liste von $Id erhalte, die nach Preis sortiert ist.
Geht das?
Wir nehmen die Schwartzsche Transformation, da wird das Sortierkriterium auf eine bestimmt Position in einem anonymen Array gelegt, zum Verstehen, lese den Code von unten nach oben:
use strict;
use warnings;
my %temphash = ();
# Einträge zum Testen
# Für das Array eine Referenz, Preis in [2]
$temphash{'1a'} = ['A-Test','Anton','99','1978'];
$temphash{'2b'} = ['B-Test','Berta','11','1975'];
$temphash{'3c'} = ['C-Test','Cäasar','33','1980'];
# gesucht eine Liste mit Id's die nach Preis sortiert ist
my @IDs =
map{$_->[0]} # keys aus [0]
sort{$a->[1][2] <=> $b->[1][2]} # Sortierkriterium in [1][2]
map{[$_, $temphash{$_}]}keys %temphash; # keys in [0], ref in [1]
# Ausgabe
print join "\n", @IDs;
Hotti