Henning: Perl skript hat schlaue ideen, kann sie aber nicht umsetzen!

Könnte mal bitte jemand kurz diesen Teil meines Skripts durchschauen? Mein Problem ist unter http://www.realschule-roxel.de/gaestebuch.html zu sehen. Tragt einfach mal ein richtig langes Wort ein, dann stretched sich die ganze Tabelle in alle Richtungen! Ich glaube das folgender Part des Skripts dies eigendlich verhindern sollte, tuts aber leider nicht! #####

function trim

trim words that are certain size in length

sub trim {

my $string = shift;
 my @sentence = split(/\s+/,$string);
 my $j = 0;
   my $word_length_max = 40;
 foreach $word (@sentence) {
  my $s_length = length($word);
  if ($s_length > $word_length_max) {
          my $num = int($s_length / $word_length_max);
          for ($i=0;$i<$num;$i++) {
             $sentence[$j] = substr($word,0,$word_length_max-1) . '-';
         $j++;
    }
    $char_index += $word_length_max;
          $sentence[$j] = substr($word,0,-1);
      $j++;
  }
  else {
         $sentence[$j] = $word;
   $j++;
  }
 }

$string = join(" ",@sentence);
 return $string;

}
Weiss jemand warum nicht? Ich wäre für einen Tip sehr dankbar!!
HEnning

  1. Hi,

    Könnte mal bitte jemand kurz diesen Teil meines Skripts durchschauen? Mein Problem ist unter http://www.realschule-roxel.de/gaestebuch.html zu sehen. Tragt einfach mal ein richtig langes Wort ein, dann stretched sich die ganze Tabelle in alle Richtungen! Ich glaube das folgender Part des Skripts dies eigendlich verhindern sollte, tuts aber leider nicht! #####

    Hilfe zur Selbsthilfe:
    perldoc perldebug

    Andreas

  2. Hi,

    Tragt einfach mal ein richtig langes Wort ein, dann stretched sich die ganze Tabelle in alle Richtungen! Ich glaube das folgender Part des Skripts dies eigendlich verhindern sollte,

    warum verwendest Du denn nicht ein für Deinen Zweck gedachtes Modul, z.B. Text::Wrap?

    Weiss jemand warum nicht?

    Nein, weil Du keine Fehlerbeschreibung nennst.

    Cheatah

  3. </faq/#Q-06c>

    </?m=129641&t=23404>

  4. Moin, moin!

    Wie wäre es mit dieser Lösung?

    sub trim {

    my $string = shift;
     my @sentence = split(/\s+/,$string);
     my $word_length_max = 40;

    foreach $word (@sentence)
     {
        $sentence[$j]=~s/(.{$word_length_max})/$1-/sg;
     }

    $string = join(" ",@sentence);
     return $string;

    }

    Alles klar?

    Norbert

    1. Oops!

      Es muß natürlich so aussehen:

      sub trim {

      my $string = shift;
       my @sentence = split(/\s+/,$string);
       my $word_length_max = 40;

      foreach $word (@sentence)
       {
          $word=~s/(.{$word_length_max})/$1-/sg;
       }

      $string = join(" ",@sentence);
       return $string;

      }

      Norbert