タグ

ブックマーク / perl-users.jp (5)

  • DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix

    こんにちは、最近 PSP1000 の電池が一瞬で切れてしまってまともにゲームができない xaicron です。 さて、みなさんは DBI から吐かれた SQL をみたいなーと思うこともあるでしょう。 そんな時は、$ENV{DBI_TRACE} = 2 とかしてみると、ドバーッといっぱいデバッグログが出てきて、 その中に実際に発行された SQL がちょろっと出てたりするのでこいつを頑張ってパースすればいい感じですね! っていうのはだいぶ面倒だったりしますね。あたりまえですね。 そこで、use するだけでとりあえず全部の発行された SQL を STDERR にはいてくれるモジュールを書きました。 その名も DBIx::QueryLog です。そのままですね。 つかいかた 使い方は至極簡単で、どっかで適当に use するだけです。ほかには何もいりません。 そうすると、以下のような感じで STDE

    DBIx::QueryLog で DBI で実行された SQL を丸見えにする! - Articles Advent Calendar 2011 Dbix
    Itisango
    Itisango 2011/12/09
  • それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix

    どうもkazeburoです。DBIx Trackなのに、DBIxを作らない話。 myfinderさんがDBIxを作る第一歩としてDBIのサブクラスの作り方を紹介しましたが、実際にDBIxを作り出す前に、その機能がDBIの標準機能でできないか調べるのがオススメです。 Callbacksの基 CallbacksはDBIに標準で用意されているHook機能です。 my $dbh = DBI->connect('dbi:SQLite:dbname=test.db','','', { RaiseError => 1, PrintError => 0, Callbacks => { connected => sub { ... } } }); 接続時のAttributesにCallbacksを追加します。上では接続が完了(connected)したらcoderefが呼び出されます。 接続時にテーブルを作

    それCallbacksで - DBIxを作りだす前に - Articles Advent Calendar 2011 Dbix
    Itisango
    Itisango 2011/12/06
  • 使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual

    gfxと申します。 Perlは後方互換性を重視しているので、標準モジュールはめったに取り除かれる事がありません。しかしそれでも、いくつかのモジュールが将来的に取り除かれる見込みです。そのようなモジュールは使用しないほうがいいでしょう。また、取り除かれはしないものの、様々な理由から使用すべきでないモジュールもいくつかあります。今日は、そういった使うべきでないモジュールを紹介します。なお、このエントリの対象バージョンは5.8から5.14を想定しています。 さて、まずは取り除かれるモジュールです。現在のところ、以下の三つのモジュールが5.14でコアから削除される予定です。 Class::ISA Pod::Plainer Switch Class::ISAはクラス階層を直列化するモジュールですが、5.10以降はmroに取って代わられました。5.10未満のバージョン用にはMRO::Compatが用意

    使っちゃいけない標準モジュール - Articles Advent Calendar 2010 Casual
  • Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009

    Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 例えば、「ディレクトリが存在しなければ作成」という処理を書くことを考えてみます。 if (! -d $dir) { mkdir $dir or die "failed to create dir:$dir:$!"; } でいいしょうか? いえ、違います。これだと、-d 演算子でディレクトリの不存在を確認した後、mkdir を呼ぶまでの間に他のプロセスがディレクトリを作成してしまう可能性があります。なので、たとえば C ならば、 if (mkdir(dir) != 0 && errno != EEXIST) { fprintf(stderr, "failed to create d

    Itisango
    Itisango 2009/12/05
  • Perl-users.jp - 日本のPerlユーザのためのハブサイト

    Perl Mongers Perl Mongers とは、日各地に存在する、Perl ユーザーのコミュニティのことです。各種イベントが行われていますので、是非参加してみましょう。 Shibuya.pm Fukuoka.pm Kansai.pm (@kansaipm) Yokohama.pm (@yokohamapm) Hokkaido.pm (@hokkaidopm) Nagoya.pm (@nagoyapm) Kushiro.pm (@kushiropm) Kyoto.pm (@kyotopm) Kamakura.pm Niigata.pm (@niigatapm) Sendai.pm (@sendaipm) Tokyo.pm Hachioji.pm (@hachiojipm) Chiba.pm (@chibapm) Yomitan.pm (@yomitanpm) Machida.pm

    Itisango
    Itisango 2008/05/21
  • 1