Struppi: Parameter vorhanden oder nicht

Beitrag lesen

Meine Subroutine liest die übergebenen Parameter ein mit
($p1, $p2, $p3) = @_;

Du verwendest kein use strict? solltest du.

Wenn $p3 nicht vorhanden ist, könnte ich dies aus der Länge des arrays erkennen, kann ich aber auch $p3 direkt abfragen, ob es übergeben wurde (vorhanden ist)?

Ja, je nachdem was übergeben werden darf und was nicht. Die einfachst Variante wäre:

sub Sub {
my $p1 = shift;
my $p2 = shift;
my $p3 = shift || return;
....

oder in deiner Schreibweise:

sub Sub {
my ($p1, $p2, $p3) = @_;
return unless $p3;

Das geht aber nur, wenn $p3 nicht auch Null oder ein Leerstring enthalten darf. Dann musst du, wie Skrilax schon vorschlug, auf defined prüfen.

Struppi.