Perlメモ

ほとんど覚え書きみたいなものです。

CGIのデバッグ

スクリプトの先頭に

use CGI::Carp qw(fatalsToBrowser);

と書いておけば、致命的エラー(500:Internet Server Error)をトラップしてくれます。

URLのオートリンク

# テキスト中のURLをアンカータグで囲む
# (httpのみ)
$text =~ s/(http:\/\/[-\w.!~*'();\/?:@&=+\$,%\#]+)/<A HREF=$1>$1<\/A>/ig;

# URLっぽい文字列を抜き出す
$text =~ /([-_.!~*a-zA-Z0-9;\/?:\@&=+\$,%#]+)/i;
$url = $1;

配列のハッシュ

# 配列のハッシュを静的に作成する
%HoL = (
	flintstones	=> [ "fred", "barney" ],
	jetsons		=> [ "george", "jane", "elroy" ],
	simpsons	=> [ "homer", "marge", "bart" ],
);

# アクセス/表示する
$HoL{flintstones}[0] = "fred";

# 配列のハッシュを動的に作成する
# 次のフォーマットに従ってファイルから読み込む
# flintstones: fred barney wilma dino
while ( <> ) {
	next unless s/^(.*?):\s*//;
	$HoL{$1} = [ split ];
}

# ファイルから読み込む; さらに作業変数を使う
while ( $line = <> ) {
	($who, $rest) = split /:\s*/, $line, 2;
	@fields = split ' ', $rest;
	$HoL{$who} = [ @fields ];
}

.htaccess

# SSI実行
Options +Includes
AddType text/html .shtml
AddHandler server-parsed .shtml

DirectoryIndex index.html index.shtml index.cgi

# ファイル一覧表示のon/off(Indexes | -Indexes)
Option Indexes

# ホスト名によるアクセス制限
# (デフォルト拒否、許可するホストを指定)
order deny,allow
deny from all
allow from docomo.ne.jp
order deny,allow

# エラードキュメントを指定
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html

# AddType text/x-server-parsed-html .html .htm

Apache(Cygwin)

/usr/sbin/apachectl start
/usr/sbin/apachectl help

/etc/apache/httpd.conf	# 設定ファイル
/var/www/htdocs/ 		# ドキュメントルート

モジュール

CGI
CGI::Carp
HTTP::Lite