トップ «前の日記(■2005-12-19) 最新 次の日記(■2005-12-31)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2005-12-29

* [Perl][メモ] TTの前処理について教えてくださいB!

  template toolkitでテンプレートファイルを読み込んだときに何らかの処理をしたいのですが、ざっとドキュメントを見渡してもそのためのAPIなりオプションなりが見つかりませんでした。下記のような強引な方法で対処しているのですが、誰かご存じでしたら教えてください。

 BEGIN {
  local $^W = undef;
   my $orig = \&Template::Provider::_load;
   *Template::Provider::_load = sub {
     my ($data, $error) = $orig->(@_);
     Encode::from_to($data->{text},'shiftjis', 'utf8');
     return ($data, $error);
   };
 }

追記:経過報告

* [今月のAcme] あの通貨単位をねらえB!

  「Perlって変数の頭に$がつくのがダサイよね」 とはよく言われる話です。もう20回ぐらい言われたり見たりしてませんか? そこでAcme::Currency。 アメリカドル以外も使えるようになりますよ! えっ? そういうことが問題じゃない?

 use Acme::Currency qw(\\);
 \en = '\100';
 print \en;

  予想されるようにFilter::Simpleで実現されていますが、FILTER_ONLYでcode指定だから文字列には影響を与えないというわけ。ふぅ、これで今年の今月のAcmeはおしまい。

  や、本年最後のAcmeはこっちか! Acme

* [雑感] 非常にどうでもよいことかもしれませんがB!

 NHKの今日からマ王のページ、わざわざ”○にマ”をGIF画像にして実現していることにほんの少しだけ感動しました。

* [雑感] 誕生日B!

 今年も一年無事に過ごすことができましたことを世界に感謝いたします。 ちゅうか、もう六捨七入とか切り捨てとかいってられない年ですよ。 とりあえず人生の半分は終わったかな。

本日のツッコミ(全2件) [ツッコミを入れる]
_ せきむら (■2005-12-29 17:08)

LOAD_TEMPLATES とかでは駄目ですか?>TTの前処理

_ まかまか (■2005-12-29 18:31)

私も最初LOAD_TEMPLATESに目をつけたのですが、<br>試した限りではどうも望みの処理を行うものでは<br>ないようにみえたのです……

本日のTrackBacks(全2件) []
_ MoFedge::Plugin::TokuLog!:[TT2]TT2 でテンプレートに前処理としてフィルターかけたい時 (■2005-12-29 22:38)

http://www.donzoko.net/cgi-bin/tdiary/20051229.html#p01 Acme 日誌より。 そんな時にはLOAD_TEMPLATES を使うとよいです。 よりは素直に書けるかと思います。

_ Charsbar::Note: TTの前処理 (■2005-12-29 22:56)

どんぞこ日誌にどんなレスがつくのか興味津々ですが。 http://www.donzoko.net/cgi-bin/tdiary/20051229.html#p01 とりあえず文字コードを変換する程度なら、 でいいような。Jcodeを使うあたりヘタレだなあと思いますが。