Funktionen heißen in Perl Subroutinen und werden mit sub definiert. Argumente landen im Array @_; meist holst du sie mit my ($a, $b) = @_;. Der Rückgabewert ist der letzte Ausdruck oder per return. Subroutinen können Listen zurückgeben.
Mit wantarray erkennt eine Funktion, ob sie eine Liste oder einen einzelnen Wert liefern soll, ein Beispiel für Perls Kontext-Prinzip.
use strict;
use warnings;
sub quadrat {
my ($x) = @_;
return $x * $x;
}
sub gruss {
my ($name, $ausruf) = @_;
$ausruf //= "Hallo"; # Standardwert
return "$ausruf, $name!";
}
sub minmax {
my @sortiert = sort { $a <=> $b } @_;
return ($sortiert[0], $sortiert[-1]);
}
print quadrat(7), "\n";
print gruss("Mia"), "\n";
my ($klein, $gross) = minmax(5, 2, 9);
print "$klein bis $gross\n";Merke
sub name { ... }definiert eine Funktion- Argumente stehen in
@_ //=setzt einen Standardwert
Aufgabe
Schreibe `maximum` für eine Liste von Zahlen.