Hi Leute,
wie lese ich eigentlich am besten an eine SubRoutine übergebene Parameter in einem eigenen Modul in Perl aus?
Ich weiß zwar bisher, dass es einerseits über
my value = shift(@_);
oder
my ($value1, $value2, ...) = @_;
geht, ich habe dann aber keine exakte Zuweisung eines Wertes einer bestimmten Variable, wenn ich sie mal nicht in der exakten Reihenfolge übergebe. Wenn ich nun aber möchte, dass eine bestimmte Variable immer genau den für sie bestimmten Wert zugewiesen bekommt, habe ich demanch also ein Problem.
Die einzige Lösung, die ich im Moment, ich bin in dem Ganzen nach einem halben Jahr noch nicht so bewandert, nun kenne, ist der Subroutine jeweils einen Paramter auf folgende Art zu übergeben:
&modul::subRoutine(NameDesParameters1=$WertDesParameters1, NameDesParameters2=$WertDesParameters2,...);
Auslesen würde ich dann die Daten innerhalb der SubRoutine mit
foreach $parameter (@_) {
($name, $value) = split('=', $parameter);
$ENV{$name} = $value;
}
und zurückgeben mit
my $ausgabe = ...;
return $ausgabe;
Da gibt es doch bestimmt einen effektiveren Weg (mit globalen Variablen wäre das ganze ja kein Problem -> entgegen jeglichem auberen Programmierstil!!)?
Ich kann das doch nicht in jede Subroutine einfügen, oder muss ich doch?
Könnt ihr mir da also einen Tipp geben. Ich hab schon im fetten O'Reilly-Wälzer rumgesucht und nichts genaueres gefunden...
Danke und MfG Sebastian