Aber wir sollten vorher checken, warum das nicht zuverlässig funktioniert.
hast du herausgefunden WANN dieser Zufall eintritt?
Es verwirrt mich wenn wir eine neue Funktion einfügen und die alte funktioniert nicht fehlerfrei. Dann fällt wegen des vielen Textes die Fehleranalyse schwerer.
Anbei will ich dir mal zeigen was ich daraus gemacht habe:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl
use strict;
use warnings;
my $body = "Das ist [BILD=margin.gif] und seine Homepage ist [LINK=http://www.martin.de]hier[/LINK]\n";
$body =~ s!\[((\w+).+?)\](?:(.+?)\[/\2\])?!allocate((map{split(/\s+(?=\w+$)/,$_)}split(/\s*=\s*/,$1)),$3?('INHALT',$3):())!gse;
sub allocate {
my %params = @_;
if (exists($params{BILD})) {
return &image(\%params);
} elsif (exists($params{LINK})) {
return &link(\%params);
} elsif (exists($params{HEADLINE})) {
return &headline(\%params);
} else {
return "!!Unbekannter Befehl!!"
}
}
sub image {
my $args = shift;
my $file = $args->{BILD};
chdir("/srv/www/seite/images/")
or die "Order nicht gefunden";
if (-e $file) {
my $text = $args->{TEXT};
my ($width, $height) = imgsize($file);
my $html = "<p class=\"bildabsatz\"><img src=\"/images/$file\" width=\"$width\" height=\"$height\"> <span>$text</span><p>\n";
return $html;
} else {
return "Bild nicht gefunden";
}
}
sub link {
my $args = shift;
return "<a href=\"$args->{LINK}\">$args->{INHALT}</a>";
}