スキップしてメイン コンテンツに移動

Perl ディレクトリ内に存在するサンプル一覧のリンクを返す

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 />

わーい。。。

このブログの人気の投稿

記述試験の書き方(仮)

記述試験の書き方(仮) 1,まえがき   法学部の試験では記述式の試験が出てくる。   その試験では、あるテーマについて自由に論ぜよとされている。 しかし、論ぜよと言われても、どのように論じればいいのか、すなわち、記述の仕方について教わったことがない(よくよく考えると、法的文章力を習得させる事だけが目的の授業はないと思われる)。   本稿では、私自身が法学畜になり、見聞きし、実際に活用している論述方法についてまとめている、はずである。その要点は、①条文、判例、学説を使う。②単なる事実と法的事実を区別する。③文章内に一貫性を持たせる。である。 法律と、プログラミング

本サイトの今後について

告知 本サイトは今後更新されることは、おそらくありません。 過去記事等はこのまま放置するつもりです。内容の陳腐化並びにその正確性等については保証はできません。自己責任で活用いただければと思います。 This site won't update in future. And Thank's everyone. new site -> sysrigar

node.js で SQLite3 を使用するコードを書くときの予備録

node.js で SQLite3 を使用するコードを書くとき、予備録 まず、非同期処理。 C言語や Perl のように上から下に処理が続くと決して思ってはいけない。 SQLite3 の each は SQL 文実行完了時に呼び出す関数を指定できる SQLite をインストールします、 npm install sqlite3 [test.js] var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); var listInfo = new Array(); db.each("SELECT rowid AS id, info FROM lorem", function(err, row) { var tmp = new Object(); tmp.id = row.id; tmp.info = row.info; console.log("[ROW]\t" + row.id + ": " + row.info); listInfo.push(tmp); }, function() { // Each 完了時に呼び出される for (var i = 0; i < listInfo.length; i++) { console.log("[BUF]\t" + listInfo[i].id + ": " + listInfo[i].info); } console.lo