Struppi: Parameter einlesen

Beitrag lesen

my ($p1, $px, $p123, $pwy) = @_;

Werden hier nur die vier ersten Parameter eingelesen, auch wenn 5 angegeben wurden?

Nein, das ist nur eine Zuweisung, das Array @_ bleibt vollständig erhalten.

Falls ja, ginge dann nicht auch

if ($p1 eq 'aaa') {
      my $optional = shift;

Nein, damit erhälst du nur den ersten Wert des Array, also das was in $p1 steht.

Du hast zwei Möglichkeiten (neben dem kompletten ändern des Parametertyps)
1. den optionalen Parameter direkt einlesen
my ($p1, $px, $p123, $pwy, $optional) = @_;
2. auf das 5. Element des Arrays @_ zugreifen
my $optional = $_[4];

Struppi.