Variable an Unterprogramm übergeben
Cruz
- perl
Hallo!
Wie übergibt man in Perl eigentlich eine Variable an einem Unterprogramm?
Ich hab so ein bisschen rumprobiert, aber irgendwie hat es alles nichts gebracht.
Also..das Ziel ist:
Übergabe einer Variable an ein Upro,
das Upro macht irgendwas damit
und danch hat die Variable einen anderen Wert.
Mal ganz banal:
sub upro {
var++;
}
&upro (variable);
und wenn die variable aus dem Upro rauskommt, soll sie um eins größer sein.
Wie geht das?
Dank euch!
Cruz
hi!
Wie übergibt man in Perl eigentlich eine Variable an einem Unterprogramm?
Das steht nun wirklich in fast JEDER Einführung zu Perl, sogar in SELFHTML. Alle Parameter, die eine Subfunktion erhält, stehen in @_. Zurückgegeben werden Werte mit return.
bye, Frank!
Hallo!
Wie übergibt man in Perl eigentlich eine Variable an einem Unterprogramm?
Ich hab so ein bisschen rumprobiert, aber irgendwie hat es alles nichts gebracht.
Also..das Ziel ist:Übergabe einer Variable an ein Upro,
das Upro macht irgendwas damit
und danch hat die Variable einen anderen Wert.Mal ganz banal:
sub upro {
var++;
}&upro (variable);
und wenn die variable aus dem Upro rauskommt, soll sie um eins größer sein.
Wie geht das?
Dank euch!
Cruz
Hi Cruz,
ich zitiere mal den Eike Grote:
---zitat---
Parameter
Die Übergabe von Parametern erfolgt durch das spezielle Array "@_". Somit kann innerhalb des Unterprogramms auf die (im Prinzip beliebig vielen) Parameter über $_[0],$_[1],$_[2],... zugegriffen werden.
Beispiel:
#!/usr/local/bin/perl -w
&S(1,2);
&S("aaa","bbb","ccc","ddd");
sub S {
local($i);
for($i = 0;$i < @_;$i++) { print "$_[$i]\n" }
}
---Zitatende--- <URL=http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_inhalt.html>
Eine Rückgabe aus einer SubFunktion geht mit "return()"... s. dito.
Viele Grüße, Rolf
Hallo Cruz
Zweite Variante:
Du definierst die Variable im globalen Namensraum und veränderst sie in der Subroutine:
$var = "";
&uprog();
print $var; # gibt '1' aus.
sub uprog
{
$var = 1;
}
Ist dann nützlich, wenn mehrere Werte verändert und zurückgegeben werden müssen.
Grüsse
Tom
Hi,
Ich hab so ein bisschen rumprobiert, aber irgendwie hat es alles nichts gebracht.
rumprobieren führt _nie_ zum Ziel, sondern höchstens mal zufällig zu einer Möglichkeit. Bei Perl ist aber eine ganz hervorragende und äußerst ausführliche Dokumentation namens "perldoc" dabei - Du kannst sie sowohl von der Kommandozeile aus (DOS-Box) als auch im Browser (Unterverzeichnis "html") aufrufen.
Alles wissenswerte über Subroutinen steht in "perldoc perlsub". Die Funktionen (Befehle) findest Du übrigens in "perldoc perlfunc" beschrieben.
Cheatah
Ehrlich gesagt...ich hab zwar erst einmal in die mitgelieferte Dokumentation reingeschaut, aber es sah so furchtbar aus, daß ich mich nie wieder reingetraut hab.
Cruz
Hi,
Ich hab so ein bisschen rumprobiert, aber irgendwie hat es alles nichts gebracht.
rumprobieren führt _nie_ zum Ziel, sondern höchstens mal zufällig zu einer Möglichkeit. Bei Perl ist aber eine ganz hervorragende und äußerst ausführliche Dokumentation namens "perldoc" dabei - Du kannst sie sowohl von der Kommandozeile aus (DOS-Box) als auch im Browser (Unterverzeichnis "html") aufrufen.
Alles wissenswerte über Subroutinen steht in "perldoc perlsub". Die Funktionen (Befehle) findest Du übrigens in "perldoc perlfunc" beschrieben.
Cheatah
Hi,
Ehrlich gesagt...ich hab zwar erst einmal in die mitgelieferte Dokumentation reingeschaut, aber es sah so furchtbar aus, daß ich mich nie wieder reingetraut hab.
ja, es steht verdammt viel drin, und man findet sich nur schwer zurecht... Aber glaube mir, ohne die Dokumentation zu kennen wirst Du über einen gewissen Punkt nur schwer hinaus kommen. Mache Dich mit der Macht vertraut, Luke! :-)
Cheatah
P.S.: Im Usenet bekommst Du ohnehin höchstens die Antwort "RTFM: perldoc perlsub" ;-) Das schlimme ist nur, die Leute haben damit absolut recht... in der Doku hast Du praktisch alle Informationen versammelt, die Du brauchst, und Du kommst wesentlich schneller dran, als wenn Du erst irgendwo fragen mußt!
Hallo
»»Bei Perl ist aber eine ganz hervorragende und äußerst ausführliche Dokumentation namens "perldoc" dabei - Du kannst sie sowohl von der Kommandozeile aus (DOS-Box) als auch im Browser (Unterverzeichnis "html") aufrufen.
Bezüglich Übersichtlichkeit, Verständlichkeit, Ausführlichkeit, usw. ist die perldoc doch eher schwer verdaulich. Öfters bleiben nach dem Studium mehr Fragen übrig, als beantwortet wurden.
Da bin ich mir doch durch SelfHTML andere Standards gewöhnt :-))
Grüsse
Tom
Hi,
Bezüglich Übersichtlichkeit, Verständlichkeit, Ausführlichkeit, usw. ist die perldoc doch eher schwer verdaulich. Öfters bleiben nach dem Studium mehr Fragen übrig, als beantwortet wurden.
glaube mir, man gewöhnt sich an perldoc. Am Anfang ging es mir genauso wie Dir, und es hat ein gutes Weilchen gedauert - aber jetzt kann ich mir Perl ohne perldoc nicht mehr denken!
Da bin ich mir doch durch SelfHTML andere Standards gewöhnt :-))
Ja, sicher - nur leider ist das meiste (sorry, Stefan!) mehr oder weniger Quickhack, den man sich sehr bald wieder abgewöhnt. Zwar hervorragend geeignet, um zu begreifen, was da eigentlich vor sich geht, aber z.B. bei Formularauswertungen ist die "use CGI;"-Variante doch um einiges besser.
Cheatah