2009-01-01から1年間の記事一覧

Error.pm のオーバーヘッド

Error モジュールが例外処理を書くのに便利そうだなと思って、採用する前にオーバーヘッドがどれくらいあるのかと思い調べてみました。

読み込んでいるモジュールの場所を知る方法

標準じゃないモジュールの場所が知りたい プロジェクト固有のモジュールを使ってるときに、そいつの場所を知りたいときがある。 %INC に入っています。

関数の引数のコンテキストはリスト

今日 DBIC を使ってて若干ハマったのでメモです。 sub list { shift->schema->resultset('User')->search({}, { 'order_by' => 'user_id' }); } sub as_fdat { map +{ $_->get_columns }, $_[1]->all; } sub list_as_fdat { my $self = shift; [ $self->as_f…

scraper コマンドの LibXML 対応 & UserAgent 切り替え対応パッチ

先のエントリで HTML::TreeBuilder::LibXML を紹介しましたが、HTML::TreeBuilder::XPath と、LibXML は下記のように微妙に挙動が違うので、Web::Scraper 付属の scraper コマンドも LibXML を使うように変更しました。 HTML::TreeBuilder::LibXML を使うと…

Web::Scraper を HTML::TreeBuilder::LibXML で高速に

昨日、HTML::TreeBuilder::LibXML がリリースされました。 Web::Scraper を 16 倍速くする HTML::TreeBuilder::LibXML を書いたhttp://search.cpan.org/~tokuhirom/HTML-TreeBuilder-LibXML-0.01_02/(デベロッパーリリース) http://search.cpan.org/~tokuh…

vim で開いてるソースのシンタックスチェックをショートカットで実行

$HOME/.vimrc に以下を書いておけば、 autocmd FileType perl :map <up> <esc>:!/usr/bin/perl %<cr> autocmd FileType perl :map <down> <esc>:!/usr/bin/perl -wc %<cr> カーソルキーの↑で、開いているウィンドウのソースを実行します。 カーソルキーの↓で、開いているウィンドウのソー</cr></esc></down></cr></esc></up>…

DBIC で検索結果のレコードをハッシュで受け取る方法

なぜか、perldoc DBIx::Class::ResultSet に get_column() は載ってるのに、get_columns() が載っていなかったのでメモです。 $col1 = $rs->get_column('column1'); とかじゃなくて、 { 'column1' => 'value1', 'column2' => 'value2', 'column3' => 'value3…

3 キャリア対応の HTML::MobileJpCSS 0.02 をチューニング

3 キャリアの CSS の実装の差異を吸収してインライン展開してくれるという、HTML::MobileJpCSS ですが、CSS ファイルが大きくなってくるにつれ、処理時間が気になってきたので、内部処理を見直してチューニングしてみました。チューニング作業は Devel::NYTP…

Catalyst でかんたんログインを実装する方法

メインに書きました。 Catalyst でかんたんログインを実装する方法

Catalyst の LocalRegex は定義順を見る

色々試して原因を特定するのに 2 時間以上ハマってしまいました。 package MyApp::Controller::Foo; sub bar : LocalRegex('(\w+)') sub baz : LocalRegex('^baz') だと、/foo/baz は bar() にマッチ package MyApp::Controller::Foo; sub baz : LocalRegex(…

オートログインの実装方法

Catalyst で「ログイン状態を記憶する」のようなオートログイン機能を実装する方法をメインのブログに公開しました。Catalyst でオートログインとブラウザを閉じるまで有効な Cookie を共存させるCatalyst::Plugin::Session::DynamicExpiry を使いつつ、Cata…

モジュールのソースをvimで手軽に読む

CPAN モジュールのソースを読むのに毎回、 vi `perldoc -l Some::Module` とか打つのが面倒臭くてシェルの alias を書いてみました。

Catalyst のファイルレイアウトを晒す

以前から Controller にロジックをガリガリ書いてて、いい加減分離とかテスト書けるようにリファクタリングしないとなと思っていたので、モダン Perl 入門を読んで、今までなんとなくモヤモヤ考えていたことが、かなりクリアになったのをきっかけに、ファイ…