Perl skript hat schlaue ideen, kann sie aber nicht umsetzen!
Henning
- perl
0 MudGuard0 Cheatah0 Linksetzer0 Norbert Kölln
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! #####
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
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
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
</faq/#Q-06c>
</?m=129641&t=23404>
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
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