注:まだ本当にレンタルサーバーでは試してないです。

思い立ってすっげぇ簡単なスクリプトを書いてみた。local::libを同梱する必要があるのと、~/perl5と.cpanがスクリプト実行ユーザー権限で書き込み・読み込みできる必要がある。
#!/usr/local/bin/perl use local::lib qw(/home/daisuke/perl5); use CGI; use CGI::Carp qw(fatalsToBrowser); use CPAN; sub main { local $| = 1; my $q = CGI->new; if ($q->param('mode') eq 'install') { install($q); } else { control($q); } } sub install { my $q = shift; print $q->header('text/plain'); CPAN::Shell->install($q->param('module')); } sub control { my $q = shift; print $q->header(), $q->start_html(), ; print $q->start_form(-action => $ENV{SCRIPT_NAME}, -method => 'GET'); print $q->textfield( -name => 'module', -size => 30, -value => $q->param('module') ); if ($q->param('module')) { my $mod; { local *STDOUT; close(STDOUT); $mod = CPAN::Shell->expandany($q->param('module')); } if (! $mod || ! $mod->inst_version) { print $q->div($q->param('module') . ": Not installed"); } else { print $q->div( ($q->param('module')) . ": Installed version is " . $mod->inst_v ersion); } } print $q->submit(-name => 'mode', -value => 'check'), $q->submit(-name => 'mode', -value => 'install'), ; print $q->end_form(), $q->end_html(); } main();