すぐ忘れるし、どこにあったか分からなくなるのでメモ。 Mojolicious - GitHubより引用 package MyApp; use Mojo::Base 'Mojolicious'; use DBIx::Custom; has dbi => sub { my $dbi = DBIx::Custom->connect(...); return $dbi; }; sub startup { my $self = shift; ### YOU MUST NOT CALL dbi() method in starup(). } リンク先にはBad Exampleもあるので参考に。
DBIx::Custom - search.cpan.org DBIx-Custom-0.1705 DBIx::Custom select メソッドの whereの項目を見ると様々な指定方法が出来ることが分かる。 注意する点はStringを渡す時。 where => "url = 'http://hoge.com/huga.cgi?key=value' ", 上のように条件に ? が含まれる場合、SQLの作成に失敗する。(DBIx::Custom::QueryBuilder::build_queryでかな?) ? がメタ文字として扱われるため?(\?とエスケープしてもダメ) Hashリフ […]
perlモジュールのバージョンを一発で調べられるコマンド $ pmvers DBIx::Cutom 0.168 cpanmがインストールしてあれば $ cpanm pmvers でインストールできます。 もうこんな事しなくていいんです。 perl -MDBI -e 'print $DBIx::Custom::VERSION'
DBIx::Customが生SQL感覚でも使えてお気に入りなのだけれど、ちょっこしハマったのでメモ。 DBIx::Custom - search.cpan.org MySQL(に限らないと思う)でwhereに関数を利用したい時は多々あると思います。 例えば、更新時刻を見て7日以上古ければ選択しないという条件をwhereに指定したい時、 CREATE TABLE `table` ( `name` VARCHAR( 5 ) , `update_time` TIMESTAMP ) SELECT * FROM `table` WHERE update_time > SUBDATE(NOW(), int […]
やっと出来たのでメモ。 起動スクリプト mojo.cgiを #!/usr/bin/env perl use strict; use warnings; use lib "../lib"; use App; app->start('cgi'); exit; こんな感じで呼び出すと通常のCGIとしてならなんの問題もなく実行出来るのだけれど、SpeedyCGIで実行しようとすると初回実行時に不具合が出る(テンプレートが読み込まれない?)上記実行方法でも2回目以降(キャッシュ後)は動作している感じ。 FastCGIやmod_perlでのエントリーは見かけるんだけど、いかんせんマイナーなSpeed […]
id:tokuhirom氏作の Email::MIME::MobileJP::Template を発見したので使ってみる。 PODにあるコードは動作しないので注意。renderメソッドのAPIが変わったのかな?ソースを見ると引数の最初に送り先のメールアドレスを指定しないとダメみたい。 それと、Email::MIME::MobileJP にあるソースも間違えているので注意。syntax=>'TTerse' は newする時に引数で指定する事。 use Email::MIME::MobileJP::Template; use Email::Sender::Simple; my $token= […]
perlのWAF(ウェブアプリケーションフレームワーク)である Mojolicious(Mojolicious::Lite)をアップロードだけで使えるのか試してみる。 簡単に使えるフレームワークとして、とりあえず Linux+Apacheで動けばおkという前提で。 なにせフレームワーク初心者の戯事なのでそのあたりは察してください。
メール送信に便利な Mail::Sendmail 大変便利なモジュールだけど、RFCに違反しているメールアドレスでは内部のエラーチェックに引っかかり送信出来ない。 例えばこんなメールアドレスには送信出来ない。 例)read_rfc822.@docomo.ne.jp 元ソースの正規表現部分 # regex for e-mail addresses where full=$1, user=$2, domain=$3 # see pod documentation about this regex my $word_rx = '[\x21\x23-\x27\x2A-\x2B\x2D\x2F\w\x3 […]
Apache2.2でSpeedyCGIのperlモジュールを使うのならyumなりで一発インストールできるけど、mod_SpeedyCGIをインストールしようとするとmakeでコケる。 どうやらパッチを当ててからmakeする必要があるようだ。 参考:Apache2.2にmod_SpeedyCGIを組み込む方法(パッチファイルのあて方) / レンタルサーバー BIG-server.com パッチファイルのダウンロード パッチファイル:CGI::SpeedyCGI with apr-1.0 ※パッチファイルはwgetで入手できないのでダウンロードしておいてFTP等でアップロードする必要がある。
Date::Calc - search.cpan.org 基本 use Date::Calc qw(:all); # 今日 my ($yyyy,$mm,$dd) = Today(); print "$yyyy/$mm/$dd"; # 実行結果 2011/1/21 昨日の日付(日付計算) use Date::Calc; my ($yyyy,$mm,$dd) = Date::Calc::Today(); @y = Date::Calc::Add_Delta_Days($yyyy, $mm, $dd, -1); my $yeste […]