alex: cgi.pm

huhu

ich würde gerne wissen wie ich bei befehlen wie table() newlines für alle neuen tags erzeugen kann. ich mag es nicht wenn das ergebnis in einer zeile steht .-)

weiss jemand wie es geht?

  1. hallo,

    ich würde gerne wissen wie ich bei befehlen wie table() newlines für alle neuen tags erzeugen kann.

    Du schreibst einfach einen Zeilenumbruch dahinter. Beispiel:

      
       foreach $main_line (@main) {  
          if ($main_line =~ /<!-- start -->/) {  
             print MAIN $cgi->comment('start')."\n".  
                        $cgi->start_table({-border =>'0', -cellspacing =>'8', -cellpadding =>'5', -width =>'100%'})."\n".  
                        $cgi->Tr($cgi->td({-bgcolor =>'#FFFFFF', -style  =>'border:1px solid #0C0C0C'}, "\n".  
                                  $cgi->ol($cgi->a({-href =>$basisurl.'/'.$archivdir.'/'.$num.'.htm'},$thema).  
                                  ' von '.$cgi->b($name).', '. $datum.' Uhr'."\n".  
                                  $cgi->comment('antwort: '.$num)."\n")."\n")).  
                        $cgi->end_table()."\n\n";  
          } else { print MAIN "$main_line" }  
      
    
    

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. hmm, ja das ginge wenn ich es so aufrufen würde. ich bevorzuge aber den tabellenbody als arrayreferenz zu übergeben. somit hab ich erstmal nicht die direkt kontrolle über die einzelnen zeilen.
      kann man das nicht global irgendwie einstellen, dass es für alle funktionen gilt? table(), radio_group() ...

      -> $" oder sowas?

      gruß

      1. hallo,

        ich bevorzuge aber den tabellenbody als arrayreferenz zu übergeben

        Dann mußt du bitte mal den relevanten Teil deines Codes posten.

        kann man das nicht global irgendwie einstellen, dass es für alle funktionen gilt?

        Jaein. Du kannst dir natürlich Variablen erfinden, die den Zeilenumbruch bereits enthalten, und die dann einsetzen.

        -> $" oder sowas?

        Ups. Dann wohl eher "sowas".

        Grüße aus Berlin

        Christoph S.

        PS: es wäre ein Pluspunkt für dich, wenn du Groß- und Kleinschreibung korrekt beherrschen lernen wolltest.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. ok, hier nun mal ein Codeschnipsel:

          __CODE__

          my @rows;

          push (@rows, Tr (th (["1", "1", "1"])));
          push (@rows, Tr (th (["2", "2", "2"])));
          push (@rows, Tr (th (["3", "3", "3"])));
          push (@rows, Tr (th (["4", "4", "4"])));

          print table ({-border => 1}, @rows);

          __CODE__

          an sowas dachte ich...
          und genau bei der Vereinfachung hätte ich gerne Zeilenumbrüche möglichst geschickt eingebunden...

          local($") = '\n'; macht leider auch nicht das Gewünschte .-(

          gruß

          1. hallo alex,

            ok, hier nun mal ein Codeschnipsel

            Na siehst du, da kommen wir der Sache doch schon etwas näher.

            push (@rows, Tr (th (["1", "1", "1"])));

            Ja, ok, damit kann man durchaus einen Array zusammenstellen. Und nichts hindert dich, daraus eben
               push (@rows, Tr (th (["1", "1", "1"])."\n")."\n");
            zu machen. Ich habs jetzt zwar auf die Schnelle nicht ausprobiert, aber vom Prinzip her sollte das dein Problem (für das ich ja durchaus Verständnis habe) lösen helfen können.

            print table ({-border => 1}, @rows);

            Daraus kannst du höchstwahrscheinlich auch noch
               print table ({-border => 1}, @rows)."\n";
            machen.

            Grüße aus Berlin

            Christoph S.

            --
            Visitenkarte
            ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. Hallo alex,

    ich würde gerne wissen wie ich bei befehlen wie table() newlines für alle neuen tags erzeugen kann. ich mag es nicht wenn das ergebnis in einer zeile steht .-)

    wenn ich dich richtig verstanden habe, dann könnte dich CGI::Pretty interessieren.

    Gruß,
    Benne

    --
    ie:% fl:( br:> va:) ls:> fo:| rl:° ss:) de:[ js:| ch:| mo:} zu:)
    1. Hallo alex,

      ich würde gerne wissen wie ich bei befehlen wie table() newlines für alle neuen tags erzeugen kann. ich mag es nicht wenn das ergebnis in einer zeile steht .-)
      wenn ich dich richtig verstanden habe, dann könnte dich CGI::Pretty interessieren.

      Gruß,
      Benne

      jap, nur wie bekomme ich das zum laufen?

      $CGI::Pretty::LINEBREAK = "\n\n";

      das oben allein reicht scheinbar nicht?

      gruß

      1. lol, schon gut, ich hätte das pretty natürlich mit use einbinden sollen .-)

        oki, danke hat mir sehr geholfen.

        gruß alex