ein Kapitel zurück                                           ein Kapitel weiter

Damit eine Funktion einen Wert zurückliefern kann benötigen wir das Schlüsselwort return. Für Leute mit Programmiererfahrung stellt dies nichts neues da. Hier ein Beispiel wie wir einen Wert aus einer Funktion zurückgeben können.........

#!/usr/bin/perl -w

sub fakul
 {
  my $x=$y=$_[0];
  while(--$x)          #Solang $x-1 bis 0
    {
      $y*=$x;
    }
  return $y;  #Rückgabewert der Funktion fakul
}

print "Fakultätberechnung! Von welcher Zahl : ";
chomp ($var=<STDIN>);

$ergebnis=fakul($var);
#Funktion fakul gibt das Ergebnis mittels return zurück

print $ergebnis , "\n";


Die berühmte Berechnung der Fakultät die in fast jedem Programmiersprache demonstriert wird. Hier sehen sie also wie wir mittels return $y den Wert an den Funktionsaufruf....

$ergebnis=fakul($var);

...an die Variable $ergebnis übergeben. Jetzt werden sich sicherlich manche von euch, mit Programmiererfahrung, fragen ob es in Perl auch möglich ist die Fakultät Rekursiv zu berechnen. Hier das Beispiel Fakultät rekursiv.....

#!/usr/bin/perl -w

sub fakul
 {
  my $x=$_[0];
  if($x)    #Abbruchbedienung der Rekursion
    {
      return $x * fakul($x-1);   #Rekursiver Aufruf
    }
  return 1;
 }

print "Fakultätberechnung! Von welcher Zahl : ";
chomp ($var=<STDIN

$ergebnis=fakul($var);
#Funktion fakul gibt das Ergebnis mittels return zurück

print $ergebnis , "\n";


Ich möchte jetzt nicht so genau darauf eingehen. Doch für Anfänger sei kurz zur Rekursion gesagt:
Ein Rekursion ist eine Funktion die sich immer wieder selbst aufruft bis eine bestimmte Bedienung erfüllt ist. Diese Bedienung stellt gleichzeitig die Abbruchbedienung der Rekursion dar.

Mit dem Schlüsselwort return wird somit auch eine Funktion beendet. Beispiel..........

#!/usr/bin/perl -w

sub func
 {
  print "Ich werde ausgegeben\n";
  return 1;
  print "Ich leider nicht mehr\n";
 }

func();


In diesem Beispiel wir nur die erste print-Anweisung ausgeführt. Die zweite nicht mehr da die Funktion an den Aufrufer den Wert 1 zurückgibt und sich somit beendet. Nicht wegen des Wertes 1 sondern wegen return. Sie können diese Beispiel ja auch mal ohne den Wert 1 verwenden.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf