だるろぐ

だるいぶろぐです

Data::Modelで複数ANDとかLIKEな検索

Data::Modelでwhereに何か指定するときは普通ハッシュ使って

my $result = model->get(table => {
    where => [
        name => 'hoge'
    ],
});

とかしますが、ググるときみたいに複数ワードでLIKE検索したいんじゃいってときはハッシュの値を更にハッシュrefにして

where => [
    name => {like => "\%$foo\%"},
    name => {like => "\%$bar\%"}
],

とかするんですが、キーが同じでハッシュに出来ないので、最初に検索条件を作っておいて

my $result = model->get(table => {
    where  => [ref $cond eq 'HASH' ? %$cond : @$cond],
});

とか。


つうか書いてる途中でふと思い出したんですが
http://github.com/tokuhirom/data-model-tutorial
見たらちゃんと載っててここまで書いたの消そうかなと思ったけどいいや。