Filter::Pyuuta

■ヒビノアワ■さんのとこで仕入れたニュース

日本語プログラム言語「ひまわり」
日本語で記述するインタープリター型のプログラミング言語

これ見て、Filter::Pyuutaを思い出した。
と思ったら、メンテナがいつの間にか変わってるしー。

MovableTypeの日本語化パッチも、徹底的に日本語化するという意味を込めてこのモジュールを使うべきか?冗談だけど。
試しにmt.cgiをFilter::Pyuutaを使用して書き換えてみる。
未実装の関数は適当に考えた。
気に入ったのがあったら、採用してー。

use strict;

my($MT_DIR);
BEGIN {
    if ($0 =~ m!(.*[/\\])!) {
        $MT_DIR = $1;
    } else {
        $MT_DIR = './';
    }
    unshift @INC, $MT_DIR . 'lib';
    unshift @INC, $MT_DIR . 'extlib';
}

eval {
    require MT::App::CMS;
    my $app = MT::App::CMS->new( Config => $MT_DIR . 'mt.cfg',
                                 Directory => $MT_DIR )
        or die MT::App::CMS->errstr;
    local $SIG{__WARN__} = sub { $app->trace($_[0]) };
    $app->run;
};
if ($@) {
    print "Content-Type: text/html\n\n";
    print "Got an error: $@";
}

    ↓

use Filter::Pyuuta;
使う 厳格;

ここだけの話($MT_DIR);
開始時 {
    もし ($0 =~ m!(.*[/\\])!) {
        $MT_DIR = $1;
    } ではない場合 {
        $MT_DIR = './';
    }
    前から詰める @INC, $MT_DIR . 'lib';
    前から詰める @INC, $MT_DIR . 'extlib';
}

実行する {
    必要とする MT::App::CMS;
    ここだけの話 $app = MT::App::CMS->new( Config => $MT_DIR . 'mt.cfg',
                                         Directory => $MT_DIR )
        or 死亡 MT::App::CMS->errstr;
    置いといて $SIG{__WARN__} = sub { $app->trace($_[0]) };
    $app->run;
};
もし ($@) {
    書く "Content-Type: text/html\n\n";
    書く "Got an error: $@";
}

これいいですね
吉野家コピペは嫌いだけどこれはイイ。