« 業界用語の危険性 | メイン | これも予想外か? »

リメイク:ファイルから読み込む

ファイルから読み込む (のぶろぐ)

書き直してみるシリーズ第2弾。

今回は、CGI.pmをfunctionスタイルではなく、OOP風に使ってみる。
以前は細かい処理も自分で書いていたが、使えるモジュールは使う方向で。
また、サブルーチンにもしてみた。

Encodeが標準装備となったPerl5.8以降は、文字コード関係の考え方ががらっと変わっている。
で、リメイクするにあたってPerl5.8風の書き方と、utf8を使っていこうと思ったのだが、とりあえず、今回はeuc-jpということで濁しておく。
前回はutf8で出力していたが、文字コードがutf8で書いた状態を想定しているだけで、新しい考え方で実行しているわけではない。

PerlEditorはutf8を扱えないので、挑戦するとしたらeuc-jpで書いたスクリプトをPerl5.8らしく動作させる、という方向になるだろう。
今、参考に見ているサイトをいくつか挙げておく。

Perl 5.8.x における日本語コード変換のメモ
Perl 5.8.x Unicode関連


ソースコード

#!/usr/bin/perl
 
use strict;
use warnings;
 
use CGI;
use FileHandle;
 
{
	my $cgi    = CGI->new;
	my $styles = ["../../ipp.css"];
 
	&print_header($cgi, "テスト2", $styles);
 
	print $cgi->p("「sig.txt」を読み込みます。");
 
	print $cgi->start_div;
	my $fh = FileHandle->new("../../sig.txt") or die;
	print $fh->getlines;
	undef $fh;
	print $cgi->end_div;
 
	&print_footer($cgi);
}
 
exit;
 
# ヘッダ
sub print_header {
	my ($cgi, $title, $styles) = @_;
 
	print $cgi->header({ -charset => "euc-jp" });
	print $cgi->start_html({
			-lang  => 'ja',
			-title => $title,
			-style => { src => $styles },
		});
	print $cgi->h1($title);
}
 
# フッタ
sub print_footer {
	my ($cgi) = @_;
 
	print $cgi->hr;
	print $cgi->div(
			$cgi->a({ href => "../../../" }, "Home"),
			"/",
			$cgi->a({ href => "../../" }, "Perl"),
			"/",
			$cgi->a({ href => "../" }, "TestCGI Index"),
		);
	print $cgi->hr;
	print $cgi->address(
			$cgi->a({ href => q{mailto:nobu3@x.age.ne.jp}}, "Written by Nobu3"),
		);
	print $cgi->end_html;
}

カテゴリ:

トラックバック

このエントリーのトラックバックURL:

同一カテゴリの最新記事

最近のエントリー

Amazon.co.jp

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 3.36
Amazon.co.jp