Op woensdag 10 oktober 2001 23:33 schreef Drop het volgende:
Het zijn redelijke kleine peel-jobs (binnenkomende data verwerken en updaten in de MySQL DB) die onwijs vaak gerunt worden.
Gewoon mod_perl gaan gebruiken dan en nooit meer denken aan perl-cgi. Ben je voorlopig van al je problemen af. Installeren is 5 minuten en als je je scripts een beetje volgens de regels in elkaar hebt geflanst (geen globals e.d.) dan kun je je scripts nagenoeg zonder aanpassingen overzetten.
Wat is 'mod_perl'? En wat is het voordeel ervan?
Ga naar Amazon en koop het boek 'Writing Apache Modules with Perl and C' van O'Reilly. Het beste boek op dit gebied en het leest lekker weg.
Een 'normaal' perl script draait 'buiten' apache en omdat het een scripting taal is moet bij elke keer dat het script aangeroepen wordt, Perl gestart worden en het script gecompileerd worden.
Met mod_perl hijs je als het ware het script binnen Apache. Het wordt 1 x gecompileerd en blijft daar draaien als subroutine. Het voordeel is dat dit abnormaal veel scheelt in performance als je dit vergelijkt met scipts die constant aangeroepen worden.
Een hoop andere modules maken hier ook gebruik van. DBI zorgt er b.v. automagisch voor dat je niet iedere keer naar MySQL hoeft te connecten. Gewoon niet meer closen en de rest gaat vanzelf.
Er zijn een paar dingen waar je rekening mee moet houden maar 'use strict' helpt je wel herinneren aan de dingen die je verkeerd doet. Globals gebruiken kan dus niet zomaar meer omdat deze niet uit zichzelf gecleard worden en exit's zijn uit den boze.
Een ander voordeel is dat je de beschikking krijgt over de hooks binnen Apache. Je kan hiermee b.v. je eigen parsers schrijven omdat je overal kan ingrijpen.
Wedden dat je geen extra machine nodig hebt?