Folgendes:
$body = "Foto von mir: [BILD:ich.jpg]";
$body =~ s/\[BILD:([a-zA-Z_0-9.]+)\]/eval{
-e "/srv/www/kukla/images/$1" ? "<p><img src=\"\/images\/$1\"><\/p>" : "nicht gefunden"
}/gsex;
Das scheint auch definitiv am -e zu liegen, denn mit 1==1 als Bedingung funktioniert alles wunderbar:
$body = "Foto von mir: [BILD:ich.jpg]";
$body =~ s/\[BILD:([a-zA-Z_0-9.]+)\]/eval{
1==1 ? "<p><img src=\"\/images\/$1\"><\/p>" : "nicht gefunden"
}/gsex;
Deshalb habe ich auch -e escaped:
$body = "Foto von mir: [BILD:ich.jpg]";
$body =~ s/\[BILD:([a-zA-Z_0-9.]+)\]/eval{
-e "\/srv\/www\/kukla\/images\/$1" ? "<p><img src=\"\/images\/$1\"><\/p>" : "nicht gefunden"
}/gsex;
Das sieht aber doch ziemlich behindert aus, oder?
Das scheint mir nämlich vom Gefühl her keine professionelle Lösung zu sein.
1. sieht das in jedem grafischen Syntax-Schema grauenhaft aus
2. sieht das komisch aus, wenn ich das komplette eval {} quoten muss.