LanX!: Perlsyntax für HTML nutzen

Beitrag lesen

Hi Christian,

OK mir war klar dass es nicht leicht zu vermittel ist...
ich will elegant den HTML-Syntaktischen Verscjhachtelungen mit seinen Abschlusstags in Perl Rechnung tragen...

Ich zeig mal wie ichs _nicht_ machen möchte (abgekürzt):

sub table(){
$tabopt=shift;
$code=shift;

print "<table $tabopt>";
eval $code;
print "</table>";
}

#sub tr(){} und sub table(){} analog

sowas wie

table("tabopt","tr('tropt',td('tdopt','text11'));tr(...)");

kann aber kein mensch mehr lesen, händisch umzubrechen und die Einrückungen einzufügen macht auch keinen Spass und mit den "und ' kommt man schnell durcheinander.

Wenn es dir nur um einfach Einrueckungsschemata geht, kannst du auf
einfache Rekursion zurueckgreifen,

wie genau?

Syntaxbaeumen an; aber um das genauer sagen zu koennen musst du etwas
besser erklaeren, was du eigentlich willst :)

Verstanden? ?:)

tschau
 rolf

PS: ich hab grad noch so ne Idee für nen Workaround, indem die Funktionen rekursiv ihren eigenen Aufrufstring zurückgeben, der später evaluiert wird.

sub td() {
  if (!$execute) {
    return "td(@_);";
  }else{
    print "<td $_[0]> $_[1] </td>"
  }
}

analog für die anderen Funktionen, und zuletzt macht man

$execute=0;
$code=table(...);
$execute=1;
eval $code;

aber wenn jmd nen eleganteren Weg weiß bin ich sehr aufgeschlossen. Es muss doch nen Weg geben einen Block an eine
Funktion zur übergeben der nicht sofort evaluiert wird...