Bei Apache::Registry fallen mir die folgenden Sachen ein:
1. Die perldoc's lesen: mod_perl, Apache::Registry, eventuell Apache::DBI, cgi_to_mod_perl, Mod_perl_cgi, Mod_perl_faq, mod_perl_traps,
2. globale Variablen nur readonly verwenden; wenn in die auch geschrieben werden soll, dann versuchen, ob man die nicht durch closures ersetzen kann
3. Nicht davon ausgehen, dass das Hauptprogramm im package main laeuft
4. Zirkulaere Referenzen selbst wieder soweit aufloesen, dass perl den speicher wiederverwenden kann
5. use strict und warnings sollte sowieso klar sein
6. ein Modul zum parameterparsen verwenden (z.b. CGI.pm), und vielleicht ein Templating-System fuer die Ausgabe des HTML-Codes verwenden (z.B. HTML::Template; das cached unter mod_perl auch recht gut, wenn man es ihm sagt)
Dann mal testen und nachschauen, ob Speicherleaks auftreten.
Feststellen, ob ein Script unter mod_perl laeuft, kannst Du am einfachsten, indem du die Existenz und den Wert der Umgebungsvariable $ENV{MOD_PERL} abfragst.
Wenn du mehr unter mod_perl machen willst, solltest du dir aber ein Buch darueber zulegen. Mir hat das "mod_perl Developer's Cookbook" von Geoffrey Young, Paul Lindner, Randy Kobes (Verlag: Sams Publishing, 2002, 0-672-32240-4, ~40Euro) sehr geholfen. Allerdings bezieht sich das auf den Apache 1.3.x, denn mod_perl fuer Apache2.0 scheint immer noch ziemlich beta zu sein...