2005-12-01から1ヶ月間の記事一覧
TermExtractを入れて遊ぼうと思ったら、use encoding関係でハマり。 encodingプラグマはローカルスコープにできない chompはencodingプラグマの影響を受ける 1. に関しては、 use encoding 'euc-jp'; my $raw_str; { no encoding; $raw_str = "じゃぱにーず"…
.htaccessが有効なら、 SetHandler cgi-scriptこういうひどい解決法もありかもしれぬ。行き詰まってる原因がキャッシュに起因するバグのせいだったら後からひどい目にあいますけどね。
自分メモ。has_manyには第3引数があって、Music::Artist->has_many(cds => 'Music::CD', 'artist_code');って指定ができるみたい。第3引数の意味はこの場合だと、Music::CDクラスからは自分(Music::Artist)をartist_codeと言う名のメソッドで参照できると言…
Date::Calcで空オブジェクトを作ってprintするとセグフォで落ちるなーと思っていたら、package hoge; use overload '""' => sub {undef}; sub new{bless [], shift}; "" . hoge->new();これでも落ちた。perl5.6.1の問題? または環境依存? 自宅の5.8系のper…
そうだったのかorz。それにしても、紹介されているapacheを二つ建てる手法は非常に合理的でいいですね〜。
よく忘れてしまうので、引用。 The order of merging is: 1. (except regular expressions) and .htaccess done simultaneously (with .htaccess overriding ) 2. , and with regular expressions 3. and done simultaneously 4. and done simultaneously
030526 : mod_perl クイック・リファレンス (1) より。 $r->send_cgi_header( $str ); $r->cgi_header_out() と $r->send_http_header を適切に呼び出す。 PerlSendHeader on ディレクティブを実装するのに使われている。 解析作業が伴なうので、パフォーマ…
import関数については今まであまり気にしてなかったんだけど、perlmodによると、 As a special caseuse Module ();is exactly equivalent toBEGIN { require Module; } だって。後ろに空っぽの()を付けると、importを呼ばないようにできるそうな。だからmod_…
CGI::ApplicationのようにWEBアプリをクラスとして扱う場合、1つのリクエストに対してアクティブになるクラスは一つだけなので、シングルトンクラスである方が幸せになれる。例えば、TTのプラグインを作るときなんかは、シングルトンであれば現在アクティブ…
例えばHTTPのリクエストを表すクラスを作る際、mod_perlではApache::Request、CGIではCGI.pmに処理を委譲したいと思ったとき、コンストラクタさえ変えれば他のメソッドはほぼ同じなので、わざわざファクトリメソッドを作ったりしたくない。そこでこんな方法…
Appleが頑張っている今日この頃でも、サーバはUNIX系、クライアントはWindows系であることは未だに多い。そのためにTTで日本語を扱うときに、大抵はDB〜スクリプト内部ではEUC、TTから吐き出すのはsjisであることが多くなる。そんなときに頑張ってくれるのが…
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか作者: ジュニア,ヘンリー・S.ウォーレン,Jr.,Henry S. Warren,滝沢徹,玉井浩,鈴木貢,赤池英夫,葛毅,藤波順久出版社/メーカー: エスアイビーアクセス発売日: 2004/09メディア: 単行本購入: 35人 …
Hatena::Diaryが楽しそうなので、自宅サーバのMTからこっちに移しました。シンプルであり、かつ、かゆいところに手が届くような設定項目やヘルパがいいですね〜。はてな記法による記事の投稿には癖があるけど、なれたら逆に使いやすそう。
TTをClass::DBIと一緒に使うと、ついついレンダリング時間が長くなってしまいがちなので、レンダリング時間の測定方法を。 use Template; use Time::HiRes ();my $tpl = Template->new(); my $starttime;$tpl->process('hogehoge.html', { START_TIMER => su…
テーブル定義からClass::DBIに対応したクラスをファイルとして生成するスクリプトってあるんだろうか? 探したけど見つからなかった。。。 Class::DBI::Loader で定義を読ませて、その後生成された各テーブルクラスのクラス属性(__hasa_relsやら__hasa_list…
OS Xに対してftpやらsshやらで接続するとタイムアウトをして困っている人々へ。 /etc/xinetd.d/ftp で server_args = -l -t 7200 とか。 /etc/sshd_config で ClientAliveInterval 60 と ClientAliveCountMax 999999 とか もしかしたら幸せになれるかもしれ…
mod_perl(Apache::Registry)環境下ではさらに複雑となる。まず、モジュールが他のスクリプトにおいて読み込み済みの場合、メインルーチンに書いてある処理は実行してくれない。この部分に初期化処理を書く場合は注意が必要だ。 さらに、Apache::StatINCを利…
perlのクラスの初期化が複雑だと思う今日この頃。例えば、以下のコードの出力はどうなる? # Class1.pm package Class1;print "main Class1\n"; print "#####################\n";sub import{ print "import Class1\n"; print join(',', @_) . "\n"; print j…
package Class1; sub new{bless {}, shift} sub hello{print "Hello Class1.\n"}package Class2; @ISA = 'Class1'; sub hello{print "Hello Class2.\n"} sub say_hello{ my $self = shift; $self->hello(); $self->SUPER::hello(); }package Class3; @ISA = …