Mailinglist Archive: opensuse-programming-de (174 mails)

< Previous Next >
Perl: Was ist '=>' eigentlich?
  • From: Joerg Rossdeutscher <ratti@xxxxxxxxxxx>
  • Date: Sun, 18 Jan 2004 09:52:02 +0100
  • Message-id: <1074415922.4489.10.camel@xxxxxxxxxxx>
Hallo,

ich möchte eine perl-Funktion so einpacken, daß ich ein paar Parameter
überprüfen kann. Beispiel:

Die Original-Perl-Funktion lautet sagenwirmal:


machwas ( $wer , $was , $wo );


Wenn man $wer als "Schwiegermutter" übergibt, schmiert die Kiste ab.
Also will ich sowas machen:


sub my_machwas {
my ( $wer , $was , $wo ) = ( @_ );
if ( $wer eq "Schwiegermutter) {
die "Keiner zuhause! Geh weg!\n";
} else {
machwas ( $wer , $was , $wo ); # Original-Funktion
}
}




Schön. Tippfehler mal aussen vor, ich habe das jetzt so runtergetippert.
Nun ist es aber leider so, das der Befehl, den ich verpacken will, seine
Parameter so bekommt:

machwas( wer => 'Schwiegermutter" ,
was => 'rumnoergeln' ,
wo => 'MEINE WOHNUNG!"
)

Ähm... was setze ich denn dann oben statt
my ( $wer , $was , $wo ) = ( @_ );
?
Ich hatte probiert
my ( $wer , $was , $wo ) = ( %_ );
das geht nicht. Wie nennt man denn diese Art der Parameterübergabe, und
in welchem perldoc wäre ich fündig geworden? Irgendwie gestaltet sich
das Googeln nach Sonderzeichen recht schwierig. :-)

Der Knackpunkt ist, daß das statt wer,was,wo sehr viele Parameter
möglich wären, von denen man normalerweise nur sehr wenige setzt (Wen es
interessiert: Es geht mal wieder um Annotate aus perlmagick).

Schönen Sonntag euch,
Ratti



--
-o) fontlinge | Font management for Linux | Schriftenverwaltung in Linux
/\\ http://freshmeat.net/projects/fontlinge/
_\_V http://www.gesindel.de https://sourceforge.net/projects/fontlinge/
< Previous Next >