--
Daniel Feist
Am Sonntag, 16. Januar 2005 13:22 schrieb Daniel Feist:
Hallo, ich habe eine Frage zu Perl - und zwar, ob und wenn ja wie es möglich ist, aus einer Hash-Variable wie diese: %ganzer_name = ("Fred" => "Feuerstein", "Barney" => "Geroellheimer", ); einen einen zufälligen Schlüssel auszuwählen und dann nach seinem Wert zu fragen?
Spontan würde ich vorschlagen, die Liste der Schlüssel in eine Liste zu schreiben, dann deren Länge (d.h. Anzahl der Elemente) zu bestimmen und dann eine Zufallszahl zwischen 0 und der Anzahl der Elemente zu erzeugen. Dann das Element $schluessel aus dem Schlüssel-Array mit Index $zufallszahl holen und aus %ganzer_name den Wert für $schluessel abfragen (das hier ist aus dem Perl Cookbook):
#!/bin/perl -w
%ganzer_name = ( "Fred" => "Feuerstein", "Barney" => "Geroellheimer", );
@schluessel = keys(%ganzer_name); $zufall = $schluessel[ rand @schluessel ];
$wert = $ganzer_name{$zufall};
print "$wert\n";
Schön wäre es, wenn man da den Zufallsgenerator rand oder ähnliches einbauen könnte. Vielen Dank schonmal im voraus!
Bitte schön...
Danke für deine Hilfe! ;) - eine Funktion, die den Schlüssel vorgibt und nach einem Wert fragt, der dann mit Regulären Ausdrücken überprüft wird, have ich jetzt! Ich verstehe nur noch nicht ganz wie ich folgendes hinbekomme: sub fuction { %hash = qw< Fred Feuerstein Wilma Geroellheimer Pebbles Steintal >; my $wert = $hash{$rand}; . .. ... } sub keys { # An dieser Stelle mit $wert weiterarbeiten? } Am besten wäre s, wenn ich der 2. Funktion die erste irgendwie "geben" könnte, also sprich mit deren Werten weiterarbeiten kann. Wie macht man das dann?