Die Frage von CGI vs MVC-Framework für den Moment verlassen, was Sie wollen, ist eine der Ausgabe Templating-Module aus dem CPAN.
Das Template Toolkit ist sehr beliebt (Template.pm auf CPAN) Auch beliebt sind Text :: Template, HTML :: Template und HTML :: Mason.
HTML :: Mason ist viel mehr als ein Template-Modul, und als solches könnte ein wenig zu schwer für eine einfache CGI-App sein, aber es lohnt sich zu untersuchen, was für Sie am besten wäre.
Text :: Template ist relativ einfach und verwendet Perl innerhalb der Vorlagen, so dass Sie Daten überschleifen und die Anzeigelogik in Perl ausführen können. Dies wird von den Menschen als Pro und Contra angesehen.
HTML :: Vorlage ist auch klein und einfach. Es implementiert seine eigenen kleinen Tags für die Verarbeitung von if/then/else, Variableneinstellungen und Schleifen. Das ist es. Dies wird sowohl als Pro als auch als Betrug für die genau entgegengesetzten Gründe wie Text :: Template gesehen.
Template Toolkit (TT) implementiert eine sehr große, vordefinierte Vorlagensprache, die Schleifen und Logik und vieles mehr enthält.
Ich habe HTML :: Template One verwendet und gefunden, dass ich ein paar mehr Features wollte. Ich habe dann Text :: Template mit Erfolg benutzt, aber ich fand den Wunsch, mit Namespaces zu spielen, etwas nervig. Ich habe Template Toolkit kennen und lieben gelernt. Für mich fühlt es sich einfach richtig an. Ihre Laufleistung kann variieren.
Natürlich gibt es immer noch die alte "print HTML" -Methode, manchmal genügen ein paar Druckanweisungen. Aber Sie sind auf die Idee gekommen, Ihre Anzeige von Ihrer Hauptlogik zu trennen. Was ist eine gute Sache.
Es ist der erste Schritt nach unten zu Model/View/Controller (MVC), in dem Sie Ihr Datenmodell & Geschäftslogik getrennt halten (Ihren Code, der die Eingabe akzeptiert, etwas damit macht und entscheidet, was sein muss Ausgabe), Ihre Eingabe/Ausgabe (Vorlagen oder Druckanweisungen - HTML, PDF usw.) und der Code, der die beiden verbindet (CGI, CGI :: Application, Catalyst MVC Framework, etc.). Die Idee, dass eine Änderung an Ihrer Datenstruktur (im Modell) keine Änderungen an Ihren Ausgabe-Routinen (View) erfordern sollte.
Danke! Ich werde sie ausprobieren und Ihre Antwort akzeptieren, wenn ich Zeit habe, sie auszuprobieren (sollte nächste Woche sein, ich gehe in den Urlaub :-)) – ristonj
Ich frage mich, ob Jifty immer noch eine gute Wahl ist? Wird es aufrechterhalten? Ich stelle fest, dass es aus Debian entfernt wird, weil es nicht weit verbreitet ist. Das letzte Update von Jifty zum CPAN war 2011. – jeremiah
Ja, Jifty sollte wahrscheinlich aus dieser Liste entfernt werden. Aber andere sind definitiv aufgestiegen, um ihren Platz einzunehmen. Ich würde jetzt Dancer und Mojolicious zu dieser Liste hinzufügen. – mpeters