Klaus Mock: tja ... wenn ich ein passendes Stichwort wüßte, könnte ich im Archiv suche

Beitrag lesen

Hallo,

Funktionieren tut das, was ich gerne wollte, jetzt übrigens so:
print "<A href="mailto:$Formular{email}">$Formular{name}</A>";
wobei ich allerdings nun wieder überhaupt nicht verstehe, warum das völlig ohne Anführungszeichen in der
geschweiften Klammer funktioniert (mit einfachen geht es auch, mit doppelten nicht ....) ...

Ohne funktionierts, weil es in Perl erlaubt ist, sogenannte barewords zu verwenden. wenn im Kontext klar ist, daß es sich um eine Stringkonstante handeln muß, dann geht der Interpreter beim parsen des Codes halt davon aus, daß es eine Stringkonstante ist.

Mit einfachen funktionierts, weil Du fürs print doppelte verwendest.
Mit doppelten funktionierts deshalb nicht, weil der Interpreter annimmt, daß der String dort gerade zu Ende ist und dann vollkommen 'durcheinander' kommt, sprich, einen syntaktischen Fehler bemerkt, und deshalb abbricht.

Deshalb stehen auch die '' vor den Anführungszeichen, weil sie dadurch 'ausmaskiert' werden. Das bewirkt, daß die Anführungszeichen ausgegeben und nicht als String-Ende interpretiert werden.

Perl bietet oft viele verschiedene Möglichkeiten, um das gleiche Ziel zu erreichen. Das kan jedoch für jemanden, der es gewohnt ist, mit streng formalen Sprachen zu arbeiten, am Anfang recht verwirren. Aber mit der Zeit wirst Du die Freiheit, die Perl Dir bietet, sicherlich schätzen (und lieben) lernen.

Viel spaß noch
  Klaus