簡易HTTPサーバ
とりあえず実体参照変換はいれたほうがいいんじゃないかとか。
--- httpd.pl.orig 2007-05-14 00:46:06.000000000 +0900 +++ httpd.pl 2007-05-14 00:53:34.000000000 +0900 @@ -24,6 +24,7 @@ use Socket; use IO::Handle; use HTTP::Status; +use CGI; use POE qw( Sugar::Args @@ -215,8 +216,8 @@ my $out; for (dir($dir)->children) { $out .= sprintf "<li><a href=\"/%s\">%s%s</a></li>", - $_->relative($root), - $_->relative($dir), + CGI::escapeHTML($_->relative($root)), + CGI::escapeHTML($_->relative($dir)), $_->is_dir ? '/' : ''; } return <<EOF;
あと、非同期とか考えなきゃ Ruby で WEBrick とか使うと簡単でいいんじゃないかと思った。
#!/usr/bin/env ruby require 'webrick' require 'webrick/httpserver' root = ARGV.shift || '.' server = WEBrick::HTTPServer.new({ :DocumentRoot => root, :Port => 3000, :DirectoryIndex => [], } ) Signal.trap 'INT' do server.shutdown end server.start