oinume journal

Scratchpad of what I learned

Perl

Perl開発環境としてのEmacsの設定

最近社内でvim勉強会があったりして「vimもいいなぁ」と思っていたのですが、やっぱりキーバインドに慣れなくってEmacsに戻ってきました。最近EmacsでPerl関連の設定を見なおしたので、メモがてら書いておきます。自分がPerlのコードを書くときに使っているe…

コマンドラインオプションを解析するPerlモジュールGetopt::Compact

Perlでコマンドラインオプションを解析する場合、大体は標準添付されているGetopt::Longを使うと思いますが、自分は3年前ぐらいから Getopt::Compact というモジュールに出会い、それ以降大抵の場合はこれを使っています。このモジュールの良いところは オプ…

DBI->connectのHandleError

DBIのちょっとしたTIPSです。DBIには connect する時に DBI->connect('dbi:mysql:database=hoge', 'root', 'whatever', { ... }); とオプションを渡すことができます。(たとえば RaiseError) 。このオプションのひとつに HandleError というものがあってデバ…

PerlのDateTimeとTime::Pieceモジュールのベンチマーク

Perlで日付関連の処理をする代表的なモジュールにDateTimeというものがありますが、メモリ消費量が激しいのがずっと気になっていました。でで、Time::Pieceが5.10.1からPerlに標準添付になったという話を聞いて、乗り換えようかどうか検討しています。Perlメ…

Text::MicroTemplate 0.10で速度が速くなっている件

Now Text::MicroTemplate is even faster than HTML::Template::Pro - use GFx::WebLog; Text::MicroTemplate 0.10で動作速度が改善されたとのことなので、自分のところでもベンチマークしてみました。 $ perl benchmark_templates.pl 1 Perl/5.10.0 (x86_64…

Text::MicroTemplateとHTML::Template::Proの比較

PerlでWebアプリを作る時のテンプレートエンジンをどれにしようか相変わらず模索中なのですが、以下の2つのエントリーで動作速度とメモリについて調べた結果、どうやらText::MicroTemplateとHTML::Template::Proのどちらかを選択するのが良いだろうと思って…

Text::MicroTemplateのメモリ使用量をベンチマーク

Text::MicroTemplateの速度を簡単にベンチマークでText::MicroTemplateの動作速度を簡単にベンチマークしましたが、今回はメモリ使用量を他のテンプレートエンジンと比較してみました。環境はUbuntu 9.04 amd64, Perl 5.10.0 で、GTopを使って測っています。…

Text::MicroTemplateの速度を簡単にベンチマーク

2009/11/15 追記:tokuhiromさんのコメントを受けて、Text::MicroTemplate以外のテンプレートファイルにHTMLエスケープの処理を追加してベンチマークを取り直しています。 Perlのテンプレートエンジンでどれを使おうか悩んでいるので、Text::MicroTemplateを…

Perlで楽天ブックスジャンル検索APIを使う

PerlでAmazon Product Advertising APIのBrowseNodeLookupを行なうの楽天版です。Amazon Product Advertising APIはRESTしかないのですが、楽天ウェブサービスはRESTとJSONに対応しているので、今回はJSONを使ってみます。 (ファイル名はsample_books_genre_…

PerlでAmazon Product Advertising APIのBrowseNodeLookupを行なう

AmazonのProduct Advertising APIで、あるカテゴリの下にあるカテゴリ(BrowseNode)を取得するPerlスクリプトを書いてみました。最初はNet::Amazonを使っていたのですが、オブジェクトを大量に生成するためかとてつもなく重いのと、返ってくるオブジェクトの…

Perlでパッケージに定義されているメソッドを出力する

Perlであるパッケージに定義されているメソッドを調べたい場合は、シンボルテーブル(%パッケージ名::)をダンプしてやればオッケーなようです。例えばClass::Accessorのシンボルテーブルをダンプするには下記のように書けばOK。 $ perl -MClass::Accessor -MD…