AlexBausW: Alles Links oder was? - funzt.net :-(

Beitrag lesen

Hallo kerki,

Ich kann mich ja auch gleich mal outen, und aufklären, woran es gelegen hat. Vielleicht interressiert es auch einige Leute aus dem Chat, wo ich das Problem ebenfalls vorgetragen hatte.

In der ursprünglichen Version habe ich folgende Zuweisung vorgenommen, um die gewählten TLDs zu erhalten, oder die Standardbelegung zuzuweisen:

@tlds = $query->param('tlds') ('.de','.com','.net','.org','.at','.ch','.co.uk','.fr');
                                 ^....das hatte ich im Chat nicht erwähnt, sorry

Dabei kam aber immer nur einer der gleichnamigen Parameter im Array an (der Letzte).
Jetzt mache ich es wie folgt:

@tlds = ('.de','.com','.net','.org','.at','.ch','.co.uk','.fr');  
  @tlds = $query->param('tlds') ? $query->param('tlds') : @tlds;

Das funktioniert einwandfrei. Warum genau die obere Version nicht läuft, muss ich erst noch herausfinden. Scheinbar funktioniert dies Art der Zuweisung nicht mit Arrays nicht.

Folgende vorläufige Begründung:
  Es werden drei Operatoren verwendet = , in der Rangfolge ihres Vorrangs
  Also wird die Parameterliste als kommaseparierte Werteliste betrachtet. vergleicht den letzten Parameter aufgrund der stärkeren Bindung gegenüber ,. Die Zuweisung hat wiederum eine stärkere Bindung als das Komma, weshalb die Zuweisung des dem direkt benachbarten linken Wertes erfolgt. Rechts von ist Perl "egal", da es nur zur "Ausführung" kommt, wenn die linke Seite "false" ist.

Ich hoffe diese grobe Interpretation stimmt einigermaßen (die Korrektur kommt bestimmt, falls nicht ;-).

Gruß AlexBausW

Please visit my SELFvisitingcard @ http://www.atomic-eggs.com/selfspezial/daten/150.html