Struppi: Zeichenkettenverknüpfung in einer Variablen

Beitrag lesen

morgens,

Wenn ich dich richtig verstanden habe, ist dir der Unterschied
zwischen Komma- und Punkt-Operator in Perl nicht ganz klar
Jaein. _Theoretisch_ kenne ich ihn, auch weil ich perldoc natürlich ziemlich sehr gründlich nachgelesen habe. Aber _praktisch_ falle ich dabei gelegentlich auf die Nase.

Ein zweites Beispiel:
print NEU $cgi->Tr($cgi->td({-width =>'12%',
                             -style =>'border: 1 solid #0C0C0C',
                             -valign =>'top',
                             -align =>'center'},
                             $cgi->a({-href => $basisurl.'/faq.htm'}).'FAQ</a><br />'.
                             $cgi->a({-href => $basisurl.'/archiv.htm'}).'Archiv</a><br />'.
                             $cgi->a({-href => $basisurl.'/script.txt'.
                                      -target =>'_blank'}).'Source</a>'), "\n",

Wenn ich hier hinter "'center'}" einen Punkt setze, erhalte ich in der Bildschirmausgabe Murks, das heißt, ich kriege eine Anzeige "CGIHash231467" oder ähnlich. Da _muß_ also das Komma hin.

Der Code stimmt auch nicht. Da sind einige Fehler drin.
Ich verstehe wirklich nicht warum meine Erklärungen so unverständlich waren :-(

Du hast hier eine Reihe von Funktionen mit Parametern, diese trennst du mit einem Komma und einige Paramter davon sind Strings und diese fügst du mit dem Punkt zusammen. Ist doch ganz einfach (finde ich)

OK, gehen wir es mal zusammen durch

print(  # Funktion
 $cgi->Tr( # Funktion
  $cgi->td(
   # 1. Paramter (HASH Referenz)
   {
     -width =>'12%',
     -style =>'border: 1 solid #0C0C0C',
     -valign =>'top',
     -align =>'center'
   },
   # 2. Parameter
   $cgi->a( # Funktion
    # 1. Parameter
    {
      -href =>
        # hier verknüfst du den wert
        $basisurl
        .'/faq.htm'
    } # ende 1. Parameter von cgi->a
    # 2. Parameter von cgi->
    , 'FAQ<br />'
   ) # ende von Funktion cgi->a

. '<br />'

. $cgi->a( {-href => $basisurl.'/archiv.htm'}, 'Archiv' ) # so sieht das kurz aus.

.'<br />'

. $cgi->a(
        {
           -href => $basisurl.'/script.txt'
           , # !!! Der Punkt war falsch!!!! da muss ein Komma hin
           -target =>'_blank'
        }
        , 'Source'
     )
   # Hier ist der String zu Ende
   )
  ) # Ende von td
 ) # Ende von Tr
 . "\n"
 # und hier solltest du wie ich schon mehrmals schrieb
 # einen Punkt verwenden damit du weiß was du willst.
;

vielleicht hilft dir das mehr, weil dein Code war wirklich umständlich und teilweise falsch.

struppi.