Perl のテンプレートエンジン Tenjin の文字化け対策 改

前回(Perl のテンプレートエンジン Tenjin の文字化け対策)修正した内容では、テンプレートキャッシュがない場合、文字化けした HTML ファイルが出力される問題があったので、その修正を施した。修正箇所は次の通り。

Tenjin.pm の修正箇所

use utf8;
use Encode;
(中略)
sub load_cachefile {
    my ($self, $cachename, $template) = @_;
    #my $cache = $template->_read_file($cachename, 1);
    my $cache = decode('utf-8', $template->_read_file($cachename, 1));

Template.pm の修正箇所

use utf8;
use Encode;
(中略)
	#return $self->{script} = $buf[0] . " \$_buf;\n";
	return $self->{script} = decode('utf-8', $buf[0]) . " \$_buf;\n";
}
(中略)
	#print OUT $content;
	print OUT encode('utf-8', $content);
	close(OUT);
}

上記のモジュールの読み込みと、文字コードの変換を修正すれば、Tenjin で出力する HTML ファイルの文字化けはなくなる。