Moin Moin!
Wer sagt, dass man zum Installieren von Perl-Modulen Root-Rechte braucht?
Die FAQ sagt was anderes, siehe Punkt 5.
Sinnvollerweise richtet man sich irgendwo (notfalls im Dokumentenverzeichnis des Webservers) einen Verzeichnis-Baum für eigene Perl-Module ein, genau nach Punkt 5. Den Baum schottet man mit .htaccess oder Server-Konfiguration komplett ab (Order deny, allow; Deny from all), und schreibt in alle Perl-Scripte, die die eigenen Module brauchen, ein "use lib '/wo/auch/immer/myperl/lib';" rein, bevor die eigenen Module geladen werden. Sprich:
#!/usr/local/bin/perl -T
use strict;
use warnings;
use lib '/wo/auch/immer/myperl/lib'; # anpassen!
use Text::CSV_XS; # als Beispiel
# mach was mit Text::CSV_XS
Ein C-Compiler wird auf dem System der Beschreibung nach ja vorhanden sein.
Um Perl-Module, die C-Erweiterungen benötigen, sicher zu erkennen, reicht DynaLoader als Kriterium nicht aus, es gibt mindestens auch noch den XSLoader. Ein Blick ins TAR-Archiv von CPAN ist in aller Regel hilfreicher. Dateien mit den Extensions C, CPP, CXX, H, HPP, HXX, und vor allem XS sind extrem verdächtig.
DBD::CSV ist übrigens ein sehr schlechtes Beispiel, denn es lädt den DynaLoader zwar, aber es benutzt ihn nicht. DBD::CSV ist ein Pure Perl DBD, aber es nutzt Test::CSV_XS, das definitiv (schon im Namen) ein XS benutzt, sprich: einen C-Compiler braucht. Das könnte übrigens auch die Erklärung für das "require DynaLoader" sein: Ohne DynaLoader-Support macht das gesamte DBD::CSV keinen Sinn.
DBD::ODBC, DBD::Oracle, DBD::DB2, DBD::Pg, DBD::mysql, und fast alle anderen DBDs brauchen definitiv XS, um an die C-API der jeweiligen Datenbank anzudocken.
Alexander
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".