perl
大豆CMSですって?
いまいじっているウェブアプリの設定は YAML 形式にしています。デザイナさんに設定ファイルをいじってもらったら「コンテンツがそっくり消えてしまいした〜(泣)」と言われてしまいました。ぱっとみ確認したところ形式が壊れたわけじゃなさそうだし…とよく…
自分のコード読み返してみたら qw/.../ と qw(...) が統一されてNEEEEE!ベスプラ本だと qw() だった気がするので最近書いているのは qw() にしてるんですが,DBIC あたりを読んでいたときは影響されて qw// にしてました。もっかいベスプラ読み返してみよう…
前回(http://d.hatena.ne.jp/dayflower/20060908/1157706291)の続きです。やろうと思っていることは, クライアントからサーバにつなぐ なんらかのコマンドを与えると処理を行う 処理には時間がかかるのでトークンだけ返す あとでそのトークンを元にステー…
Perl で UNIX ドメインのサーバを書くことになりました。でもSocket(or IO::Socket)をそのまま使うのは面倒くさい*1。ということで CPAN をあさってたら Net::Server というものがありました。POE というのもあって最終目標からすると勉強する価値ありそう…
だらだらと3日にわたって書いてきましたが,明日から遅めのお盆休みになるのでまとめをメモ書きしておきます。 worker MPM での mod_perl は Perl の ithread を使っている httpd のスレッドプールとは独立して Perl インタプリタプールが存在する Perl イン…
PerlInterpMax を増減させてもスレッド数変わらないのでした。単独スクリプトで threads 使うときちんとスレッドが表示される(つまり OS のスレッドを利用している)のでなんでだーと思ったんですが,ひょっとするとプールというのはスレッドプールというわ…
前々回も書きましたが,worker MPM で mod_perl を使うと,インタプリタプールなるものが作成されます。このインタプリタプールというのはまさに Apache におけるプロセスプール(prefork MPM の場合)やスレッドプール(worker MPM の場合)の Perl インタ…
Class::Accessor シリーズに 0.27 で Class::Accessor::Faster なるものが追加されていました(Fast と同様 Class::Accessor を普通に入れると一緒に入ります)。 This is a faster but less expandable version of Class::Accessor::Fast. C::A::Fast 「よ…
とりあえず mod_perl を離れて threads::shared でスレッド間変数共有をやってみましょう。
イマイチ worker MPM で mod_perl が安全に使える自信がなかったので確かめてみました。題して「worker MPM でのグローバル変数は Thread Local Storage か Process Global Storage か?」
http://d.hatena.ne.jp/dayflower/20060715/1152939240 に 複数のリレーションに対して並列に prefetch を掛けることはできません。即座にエラーがでるわけではないのでちょっとハマりぎみなポイントです。 って書いてあったのを間にうけました>< というか…
が出る,らしい(←コード間違ってたらすいません),です(via id:bakelatta:20060803:p1)。ま,まじっすか(←最近そればっか)。洋書を買わずに我慢した甲斐がありました(←それは軟弱すぎ)。絶対買う。
(._.) φ メモメモ DateTime オブジェクト同士で subtract(マイナス演算子の overload も)すると,DateTime::Duration がかえる DateTime::Duration はわりと人間的に情報を持ってる たとえば DateTime(2006/08/18 12:34:56) - DateTime(2004/03/02 09…
flock まわりでなにかいい CPAN モジュールないかなぁとうろついていたら ttp://pc8.2ch.net/test/read.cgi/php/1024795138/ こんなスレがありました。玉石混交なのがいかにもですが4年以上続いてるのがなにげに良スレなのかなぁ。結局そこではモジュールは…
DBIC のスキーマをたくさん(20数個かな)定義したモジュールを use しただけの単純なスクリプトに DProf によるプロファイラをかけてみました。Algorithm::C3 0.01 時代のプロファイリングがこれ。 Total Elapsed Time = 9.335981 Seconds User+System Time…
0.02 Sun. Jul. 30, 2006 - code refactored for speed by Brandon L. Black ま,まじっすか?Algorithm::C3 とはいうまでもなく Class::C3 の根幹を支えるモジュール。ということは DBIC の初期化も…wktk!
DBIC のプラグイン機構は Class::C3 が使われています。これは何をするものかというと,多重継承したクラスでのメソッドの呼び出し順序を Perl 標準のではなくわりとメジャーな順序にするという…って自分でも何をいっているかわかりませんが,ともかくそれを…
以前も書いたように DBIC でのリレーションは,PREFETCH すると INNER JOIN や OUTER JOIN な SQL が発行されます。一方,ページャとして有用な page, rows アトリビュートは LIMIT, OFFSET を利用しています。ですから, my $artists = $schema->resultset(…
うちからアクセスできないだけですかね。 と思ったらアクセスできるようになりました。 と思ったらなんかおかしいですね。そんなに困らないかなと思ったら意外に依存した生活をしていたのでした。
と思ったらまだ置いていなかった罠。
昨日の話をふまえたうえで #!/usr/bin/perl use strict; use Error qw(:try); sub test { try { warn 'step 1'; return; warn 'step 2'; }; warn 'step 3'; } test();の結果は, step 1 at test.pl line 8. step 3 at test.pl line 12.やっぱり,そうなるん…
すいません,基礎ができていませんでした。 sub foobar { my $arg = shift; eval { return 'not defined' unless defined $arg; }; return 'defined'; } print foobar(); # 'defined' is printed.eval() 内の return は eval 節自体の評価値として返す,とい…
追記 2006/12/06 下記で IS NOT NULL を実現するのにスカラーリファレンスを使用していますが,IS NULL / IS NOT NULL を出すためには必ずしもスカラーリファレンスを利用する必要はありません。ということで訂正を入れようと思ったんですがちょっと長いので…
ハッシュのディープコピーにこれまで Clone を使っていたんですが,メモリリークが起きる可能性があるそうで Clone::More および Clone::Fast なるモジュールが CPAN にあがってます。まだ読み中なので何ともいえないですが,とりあえず落ち着いて POD 書け…
use utf8; use Email::Valid; print Email::Valid->address('日本語@ドメイン.です') ? 'OK' : 'NG', "\n";の結果は「OK」となります。Email::Valid::Loose でもそうなります。 国際化ドメインとして考えるのならいいのですかね?でもその場合でも local-par…
今まで $schema->storage->debug(1) として標準出力に出力される SQL 文を監視していたのですが,なぜか早く終わるリクエストでとらえきれなくなってしまいました。やむなくロガーを導入することにしました。Log::Log4perl は仕様が重そうなので(log4j のと…
今日は体調がすぐれなかったのでお休みしてしまいました。おうちから CPAN の Recent をみてたら,「TL」とかいうのがどかどかと up されてました。?なんだこれは?と思ったら,TL - Perlフレームワーク らしいです。ユミルリンクですかぁ。
CGI 時代では,たとえばメールを送るなど時間がかかる処理を行う時は fork() を使っていました。子プロセスでメール送信,親プロセスでレスポンスを返す,とやると,ユーザはメールが実際に送られるかどうかに関わらず ASAP でレスポンスを受け取ることがで…
前回よりだいぶ間があいてしまいました。 3. filter ファクトリクラスを作って LOAD_FILTERS で指定する まずファクトリクラスの書き方ですが,Template::Filters というよいサンプルがあるので読みましょう。というのは冗談で,めんどくさい部分を Template…