Thread Perl hängt sich mal wieder auf: bei ersetzen in einem Template (7 answers)
Opened by pktm at 2003-10-18 20:25

pktm
 2003-10-18 20:25
#6292 #6292
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Hier mal wieder was freudiges von mir:
Perl hängt sich auf und es kann eigentlich nurncoh an der Subroutine liegen, die ich immer zum ersetzen in Templates verwende.
Das Problem trat nämlich auch in anderen Projekten bei immer der selben Aktion auf.
Die Sub sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sub substitute{
# ---- usage
# my @substitutedFile = substitute( @contentToSubstitute ); # substitute-keywords must be added to %subs (global %hash)
my @err = (); # array für fehler
my @file = @_;
foreach my $eintrag( @file ){
if( $eintrag =~ /\%\%(.*)\%\%/ ){
my $keyword = $1;
unless( exists $subs{$keyword} ){ push @err, "Wert nicht gesetzt: $keyword\n"; $subs{$keyword} = ""; }
unless( $eintrag =~ s/$&/$subs{$keyword}/g ){ print STDERR "Fehler beim ersetzen!\n"; }
print STDERR "ersetzte: $& mit $eintrag\n";
}
}
print STDERR @err;
return @file;
} #substitute

Der Aufruf erfolgt z.B. ao:
Code: (dl )
print substitute( extractFile( $tmplDir . '/template.html' ) ); #extractFile liefert den Inhalt einer Datei als Array zurück


So, um dieses Problem jetzt ein für allemal aus der Welt zu schaffen, weil es mich echt ankotzt, dass ich perl immer über den Taskmanager beenden muss um damit ich zu meiner Augabe komme dachte ich mir, schreiben wir diese Funktion einfach mal neu.
Schön geordnet, ohne Ausgabe der Fehler in den STDERR und ohne Verwendung der Variablen $&.
Wer gibt mir einen Vorschlag?
mfg pktm
PS: Ist es eiegtlich möglich mit wenig Aufwand ein Script nach x Sekunden terminieren zu lassen?
Wenn ja bitte mal per PM mitteilen, ich könnte sowas BEI DER ENTWICKLUNG (keine Angst :) ) gut gebrauchen.
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Perl hängt sich mal wieder auf: bei ersetzen in einem Template