モジュール一覧をリストアップするCGI

インストール済みのモジュールを調べるCGIはいくつか公開されているのですけれど、単純明快に\w+\.pmというファイル名をリストアップすることでざっと調べてみました。

\w+\.pmをリストアップしてみた結果

XREAのs44サーバーでの結果です。他のサーバーは違うかも違わないかも。XML::Atomキボン!

#!/usr/local/bin/perl

use strict;

print <<"_HTML_";
Content-Type: text/html

<html>
<head>
<title>Module List</title>
</head>
<body>
<pre>
_HTML_

foreach my $inc (@INC) {
  scandir($inc);
}

print <<"_HTML_";
</pre>
</body>
</html>
_HTML_

exit;

sub scandir {
  my $dir = shift;

  opendir(DIR, $dir);
  my @finds = readdir(DIR);
  closedir DIR;

  foreach my $find (@finds) {
    if ($find =~ /\.pm$/) {
      print "$dir/$find\n";
    } elsif (($find =~ /^\w+$/) and -d "$dir/$find") {
      scandir("$dir/$find");
    }
  }
}

暴走危険。