Perl ディレクトリ内に存在するサンプル一覧のリンクを返す
概要
ちょっとサンプルコード一覧のリンクを表示するだけの CGI が欲しかったのでサクッと作った。そういえば Apache のセキュリティーを緩くすればディレクトリの中身を index.html がなかった場合に返却することができるみたいだね。
ソース
#! c:/perl/bin/perl
# Unix/Linux の場合は /usr/bin/perl に置き換える
#---------------------------------------
# ディレクトリ内に存在するサンプル一覧のリンクを返す。
# 2015 / 02 / 03
# jskny
#---------------------------------------
use strict;
use File::Copy;
use File::Path;
use FindBin;
use utf8;
my $dir = ".";
opendir(DIR, $dir) or die("Can not open directory:$dir ($!)");
my @list = readdir(DIR);
closedir(DIR);
print "Content-type: text/html\n\n";
foreach my $file (sort @list) {
# '.' と '..' はスキップ
next if( $file =~ /^\.{1,2}$/ );
my $buf = "${dir}/${file}";
if (-d $buf) {
# ディレクトリの場合は無視する
print ${file} . " is dir.
\n";
next;
}
elsif (-e $buf) {
# ファイル発見
if ($buf =~ /(\.html|\.htm|\.js|\.css)$/) {
print "<a href='" . $buf . "'>${buf}</a><br />\n";
\n";
}
}
}
return;
結果
Content-type: text/html
<a href='./angular.min.js'>./angular.min.js</a><br />
<a href='./test1.html'>./test1.html</a><br />
わーい。。。