Hi,
Da es dir um die Existenz des Parameternamens geht, müßte die Abfrage so aussehen:
Genau so, und ich meine mein erstes Statement
"ob ein Parameter p1 beim Aufruf übergeben wurde? Der Parameter kann einen Wert zugewiesen haben oder nicht" sagt genau dies aus.
my $aa = defined $x->param('p1') ? $x->param('p1') || 'default' : '';
Wenn ich die Perl-Beschreibung richtig verstehe, so ist defined nicht korrekt!
Dort steht, wenn ein Parameter existiert, muss er nicht definiert sein - das Umgekehrte gilt nicht.
Hottis Vorschlag funktioniert (mit meiner kleinen Änderung).